Go语言中文网 为您找到相关结果 181

用 Go 实现图片尺寸的自动调节

我刚上大学那会儿,课上到最后几分钟的时候,我会翘课奔到另外一个我几乎不怎么了解的班上去蹭课。碰巧,那个班上的课是我觉得最棒的课之一 ——计算机视觉。此外,那个课上介绍了一种很赞的算法:Seam Carving,精雕细琢。 这个算法大概是酱紫的:一般我们想改变图片大小的时候,会采用裁剪和缩放的方式,这样一来,图片会损失很多重要信息,在处理过程中,图片甚至被歪曲。那么,我们怎么才能找到图片中视觉信息最少的部分,要调整图片大小的时候,只把这部分移除掉是不是可以呢? 上图展示给我们一副很美的画面:开阔的蓝天,俊逸的城堡。但是,对我们来说,图有点大,我们得往小调一下。怎么弄呢? coraaller翻译于 3周前 2人顶 顶 翻译的不错哦! 第一个进入我们大脑的想法是改变原始图像的尺寸。改变之后的图像(...阅读全文

博文 2016-08-04 19:00:00 hxapp2, coraaller, 无若, HAILINCAI, 昌伟兄

Janus WebRTC Server研究

前言 未编译及测试,直接裸看Janus WebRTC Server代码。 WebRTC本身只支持点对点,群聊只能客户端通过发多路音视频数据给别的客户端,对于客户端压力非常大,所以无法支持更多人的群聊,而且有些NAT是无法通过点对点对连的,所以需要一个中转服务器来中转,经过初步考察有kurento、 licode、 janus三个主要的开源项目,其中又以janus的star最多,所以就先拿这个项目研究一下,我个人是有点想写个golang版本来替代。 janus github地址:https://github.com/meetecho/janus-gateway janus原理 初看了一下janus源码,大概原理如下: janus使用ICE模拟WebRTC客户端与真实的WebRTC客户端进行交换...阅读全文

博文 2018-10-16 09:34:42 云上听风

Golang 图片处理(旋转/居中)

简单旋转分为顺时针旋转90度,顺时针旋转180度,顺时针旋转270度。说到底其实就是矩阵旋转,将各个像素点的色值重新赋值 // 旋转90度 func rotate90(m image.Image) image.Image { rotate90 := image.NewRGBA(image.Rect(0, 0, m.Bounds().Dy(), m.Bounds().Dx())) // 矩阵旋转 for x := m.Bounds().Min.Y; x < m.Bounds().Max.Y; x++ { for y := m.Bounds().Max.X - 1; y >= m.Bounds().Min.X; y-- { // 设置像素点 rotate90.Set(m.Bounds().Max...阅读全文

博文 2019-12-28 21:32:42 韬大帅

TIM:高带宽特征的点对点数字货币-数字货币项目点评

声明:本测评内容仅供参考,任何依本测评内容作出的投资行为,与本测评内容无关。项目有风险,投资需谨慎。 TIM项目创建了一种高带宽点对点货币块链结构体系,该体系将使各种类型的社会价值商品在一个单一的系统上得到了高效的处理,从而提高了跨行业的商业性、安全性、分散性以及可靠性。项目应用了弹性DAG架构技术、GPS节点标识技术、免费子链以及量子安全加密等技术。TIM也是世界上第一个基于量子安全技术的区块链项目。 去中心化是区块链的重要特征之一,但同时也带来了处理数据效率低的问题。目前通过采用大规模分散的分类账本技术,取代以中介为基础的金融或商业系统的可能性正在逐步成为现实。目前在基于DLT的体系结构上正在测试的多种类型的实用程序,虽然说早期的成功可以推动各种类型商业的数字化,但是区块链的带宽问题在很...阅读全文

博文 2018-08-15 13:36:18 币圈百小生

TIM:具有高带宽特征的点对点数字货币 | ONETOP评级

声明:本测评内容仅供参考,任何依本测评内容作出的投资行为,与本测评内容无关。项目有风险,投资需谨慎。Statement: the contents of this assessment are for reference only. Any investment behavior made according to the contents of this assessment is not related to the contents of this assessment. The project is risky and the investment must be prudent. TIM项目创建了一种高带宽点对点货币块链结构体系,该体系将使各种类型的社会价值商品在一个单一的系统上得...阅读全文

博文 2018-08-15 12:35:33 ONETOP评级

golang channel buffer

package main import ( "fmt" "time" ) func main() { // Case-1: no buffer //chanMessage := make(chan string) // Case-2: with buffer ... the output changes chanMessage := make(chan string, 2) count := 4 go func() { for i := 1; i <= count; i++ { fmt.Println("send message") // send to chanMessage chanMessage <- fmt.Sprintf("message %d", i) } }() // Paus...阅读全文

博文 2015-10-17 03:00:00 bnbqian

[高速通道进阶一]如何理解高速通道的就近接入和一点接入连接全球

摘要: 经常有用户问,我在上海有个IDC,在北京有个VPC,我想通过专线把IDC和VPC连接起来,我是不是要找运营商直接拉一根上海到北京的专线?其实不是这样的,用户只需要接入到最近的接入点即可。高速通道产品设计中有两个重要的思想:一是就近接入策略,二是一点接入连接全球,本文为您进行详细解读。 **点此查看原文:http://click.aliyun.com/m/41049/** **高速通道产品功能** 在展开说明之前,先简单介绍下产品,阿里云 [高速通道](https://www.aliyun.com/product/expressconnect?spm=a2c4e.11153959.blogcont368231.13.1efca03e1nTAfb) 产品主要有两个核...阅读全文

<6> go select 和 switch

select和switch语法都能相近,但是有重要不同的一点,switch可以做表达式的比较判断,而select只能是io操作的判断。相同点:都能用return跳出来。 // switch i := 1 switch{ case i==1: //doing case i==2: //doing default: // doing } //select ch := make(chan ,bool) select { case <- ch: // doing 当ch有值的时候,会触发这个case default: // doing } $(function () { $('pre.prettyprint code').each(function () { var lines = $(this)....阅读全文

博文 2015-12-15 00:00:00 a11101171

golang sync.WaitGroup

//阻塞,直到WaitGroup中的所以过程完成。 import ( "fmt" "sync" ) func wgProcess(wg *sync.WaitGroup, id int) { fmt.Printf("process:%d is going!\n", id) //if id == 2 { // return //} wg.Done() } func main() { //var wg sync.WaitGroup wg := new(sync.WaitGroup) for i := 0; i < 3; i++ { wg.Add(1) go wgProcess(wg, i) } wg.Wait() fmt.Println("after wait group") ...阅读全文

博文 2015-04-09 03:00:01 rojas

安全态势,交互发现 —— 基于阿里云轻松搭建安全大屏

摘要: 使用DataV大屏展现态势感知 DNS 会话日志,从而实现交互式安全威胁发现。 2017年,阿里云启动MVP(Most Valuable Professional)项目。顾名思义,MVP正在寻找阿里云最有价值专家,那些能够,并且愿意帮助他人,充分了解和使用阿里云技术的意见领袖。 本文是阿里云MVP 傅奎的实践分享,今天和大家讲讲 “安全态势,交互发现 —— 基于阿里云轻松搭建安全大屏 ” 一句话概述 背景介绍 产品介绍 需求分析 实现方法 导出态势感知 DNS 日志 定制返回 JSON 串的数据源API 定制 DataV 大屏,指定 API 数据源 发布监控大屏,看效果 交互式发现 补充说明 替你踩过...阅读全文

云主机与虚拟主机的区别是什么

普通虚拟主机:虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器,每个空间都给予相应的FTP权限和Web访问权限,以用于网站发布。 云虚拟主机:是普通虚拟主机的升级版。在云服务器基础上,使用云计算技术,更稳定、安全,可用性更强的虚拟主机。 虚拟主机的特点 1、 价格便宜。虚拟主机是标准的资源共享,性能虽然比不上VPS和服务器,但胜在价格,适合前期建设的网站。 2、 操作简便。虚拟主机的控制面板上有明确的在线解压、绑定域名、301重定向等设置,比较适合新手操作。 3、升级方便。如果在耐思尼克购买虚拟主机,主机升级只要用户在线提交申请,不用对网站进行更改,网站依然能正常运行,不够空间也不用担心。 云虚拟主机的特点 1、 通过...阅读全文

阿里云VPN网关VPN-HUB功能发布,实现企业分支互通

摘要: 通过VPN-Hub功能在多个站点之间建立安全通信,使各个站点不仅可以和云上VPC互通,并且远程站点之间可以彼此通信。VPN-Hub连接可满足大型企业在各个办公点之间建立内网通信的需求。 **点此查看原文: http://click.aliyun.com/m/43194/** **功能概述** 阿里云VPN网关近期发布了VPN-HUB功能,该功能提供了一个云端的VPN接入点,企业线下IDC、办公点、门店等分支通过VPN接入,不仅是接入了云端VPC,还可以和其他所有接入的分支互通。 该功能适用于大型零售连锁商超、金融保险行业、多分支机构等线下拥有多个分支、办公点的企业客户通过VPN-HUB功能实现互连。 ![图片描述](http://img.blog.cs...阅读全文

golang crontab

注册任务到调度器里,当任务要执行的时候会使用goroutines调用,这样每个任务都不会发生阻塞。 Golang不仅仅是兼容了linux标准的crontab格式,而且扩展了秒。也就是说正常的crontab是 分 时 小时 月 星期,而robfig cron是 秒 分 时 日 月 星期。 c := cron.New() c.AddFunc("0 30 * * * *", func() { fmt.Println("Every hour on the half hour") }) c.AddFunc("@hourly", func() { fmt.Println("Every hour") }) c.AddFunc("@every 1h30m", func() { fmt.Println("Ev...阅读全文

博文 2017-04-24 13:00:30 zhangzhihai

golang 知识点总结

1) 日期格式化 //Date.Format("2006-01-02 15:04:05") //时间戳 time.Now().Unix() //int64 //转为字符串 strconv.FormatInt(time.Now().Unix(), 10) 2) json //improt包:"encoding/json" //orm, _ := models.New() //var slice []models.Orginfo //orm.FindAll(&slice) //tjson, _ := json.Marshal(slice) 3)字符串转换 //字符串转int / / 包 strconv //tint, _ := strconv.Atoi(tstr) //int转字符串 //tst...阅读全文

博文 2015-11-19 19:00:01 ziyouzhiqiu

golang tcp io dt的一些问题

1. io是阻塞的 导致类似 公频聊天一对多的时候 write 到所有用户的时候 等等待所有写入完成 函数才执行完毕 要么就模拟一个异步 但是目前为止没有找到好的解决方案 2.io是阻塞的 导致conn.Read([]byte) 让我以为是 buf := make([]byte, 2) conn.Read(buf) 要么返回一个错误,要么阻塞直到读到2个byte数据为止 其实有可能会返回 1,ni...阅读全文

博文 2014-10-04 19:27:44 itian277

疑问 没有缓存的chan在发送阻塞的时候已经把值存进去了还是在读的时候存的

```go package main import ( "fmt" "time" ) func main() { var num = 10 var p = &num c := make(chan int) go func() { time.Sleep(time.Second) c <- *p //-----> 11 //c <- num //----->10 }() time.Sleep(2 * time.Second) num++ fmt.Println(<-c) fmt.Println(p) return } ``` 为什么 *p 和num的结果不一...阅读全文

golang 生成个性二维码

前言 好久没发文章了,最近登录看到有朋友评论了golang生成二维码的文章,想了解下生成个性二维码的解决方案! 实现思路 ,网上搜相关资料几乎没有, 没有那就就自己想吧,就去看了下草料二维码; 然后突然就有感觉了 不就是把像素的颜色替换嘛 这还不简单 1 打开二维码图片2 打开要填充的图片3 将要填充的图片剪裁成和二维码一样大小4 分析二维码的每个像素 替换成图片的像素就行了 以下是生成的例子: 例子 代码 package main import ( "fmt" "github.com/nfnt/resize" "image" "image/color" "image/draw" "log" "os" "time" _ "image/jpeg" _ "image/gif" "image/pn...阅读全文

博文 2020-05-10 17:32:42 李昊天

通过 Jaeger 上报 Go 应用数据

在使用链路追踪控制台追踪应用的链路数据之前,需要通过客户端将应用数据上报至链路追踪。本文介绍如何通过 Jaeger 客户端上报 Go 应用数据。 背景信息 数据是如何上报的? 不通过 Agent 而直接上报数据的原理如下图所示。 Report Tracing Data Directly 通过 Agent 上报数据的原理如下图所示。 Report Tracing Data By Agent 如何获取接入点信息? 登录链路追踪控制台,在概览页面上打开查看 Token 开关。 单击需要使用的链路数据采集客户端(Jaeger 或 Zipkin)按钮。 在下方表格中相应地域的相关信息列中,单击接入点信息末尾的复制按钮。 Tracing Analysis Endpoint Section 提示:如果应用...阅读全文

博文 2019-05-19 16:43:59 8588ll

容器云,为电商双十一大战保驾护航

又到一年双十一,一场由电商网站主导,社会全民参与的购物狂欢盛宴再一次准时上演。事实上,双十一,不仅是剁手党们热热闹闹的「 狂欢节 」,同时也是电商网站们悄无声息的「 技术大考 」。 接下来看看各大电商巨头在容器技术应用方面的现状是怎么样的: ![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2016/11/%E4%BA%AC%E4%B8%9C.png) :京东对容器技术的使用和推崇在圈内是可圈可点的。据公开资料显示,京东拥有目前世界上 「 规模最大 」的Docker集群,今年或将达到20万个。基于Docker和OpenStack的京东弹性云,支撑了京东数次6.18和双十一大促的考验,以及数千亿的交易业务。目前京东所有的...阅读全文

go语言协程认识-1

//关于go语言协程通道的使用 //1.通道可以带缓存,也可以不带 //2.不带缓存的,不管是读还是写都会阻塞 //3.带缓存的,如果缓存溢出,就会阻塞 //4.make(chan int,1)和make(chan int)是不一样的,第一种通道内写入两个数据会阻塞,第二种写入就会阻塞 //5.如果协程在阻塞,但是主程已经退出执行,则认为程序死锁 //6.如果程序除了主程之外(没有一个协程),处于阻塞状态,则认为程序死锁 //7.一句话:只有一个协程(可以是主程),在阻塞,认为程序处于死锁 //8.子程序是协程的一种特例,阻塞到子程序执行完毕返回,而协程可能等不到执行完毕就返回,然后条件满足再回来执行 package main import ( "fmt" ) func main() { /...阅读全文

Java消息队列总结只需一篇解决ActiveMQ、RabbitMQ、ZeroMQ、Kafka

一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式a、串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。​b、并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端...阅读全文

博文 2018-09-21 00:08:41 Spring51

大数据Clouder专项技能认证课程:Quick BI企业报表制作

课程介绍 阿里云大学Clouder大数据专项技能认证:Quick BI企业报表制作 本认证课程可以帮助学员掌握图形化报表设计、开发的方法,同时还将掌握搭建企业级报表门户。通过报表门户,将企业的数据通过图形化报表展现出来,实现信息共享。 课程亮点: • 真实环境:实验环境为公共云资源,和客户实际使用资源相同 • 仿真场景:动手实验的数据和需求来自于实际的企业项目 • 实战性强:课程和实验围绕实用性非常强的技能点,可快速应用到实际工作中去 • 易学易懂:内容深入浅出,理论和实践相结合,随时可学,学完即会 课程目标 • 掌握使用Quick BI制作企业报表的方法 适合人群 • 所有人 课时列表 • 免费 课时1:内容...阅读全文

移动终端app测试点总结

以下所有测试最后必须在真机上完整的执行 1、安装、卸载测试 在真机上的以及通过91等第三方的安装与卸载 安装在手机上还是sd卡上 2、启动app测试 3、升级测试   数字签名、升级覆盖安装、下载后手动覆盖安装、跨版本升级、升级后可以正常使用。   覆盖安装要确保数据库有字段更新的话,能正常更新,否则就容易导致app异常。 4、功能测试   包括功能点、业务逻辑、关联性(主要测试客户端与PC端的交互,客户端处理完后,PC端与客户端数据一致)、   服务端接口测试(主要通过访问服务端接口来验证服务端业务逻辑功能点是否正确) 5、数据对比测试   可在模拟器或真机上进行,同时与数据库中实际的插入记录做对比。还要对比主站的相同流程...阅读全文

Go 并发(四):select篇

载于公众号:灰子学技术原文链接:https://mp.weixin.qq.com/s/nJRVbhRQCgWHR1eHSfBpFA一、前言介绍:对于Go语言并发通讯,是使用的协程goroutine,而协程之间的通讯采用的是channel。但是channel不管是有缓存的,还是无缓存的都会有阻塞的情况出现,只不过无缓存的阻塞会更加频繁。而协程长时间阻塞了之后,Go语言本身又没有提供这种超时的解决机制,所以开发者需要自己考虑实现这种超时机制。这种超时机制在Go语言中则是使用select来解决的。相关的背景知识:1.Go语言并发篇(一):之go语句篇:https://mp.weixin.qq.com/s/FD-MP9r5sEn1QYRAYZE_4g2.Go语言之goroutine的调度原理: ht...阅读全文

golang里面有没有针对read非阻塞的channel?除了超时机制

比如 ```gofunc var c = make(chan int, 1) func test() { for { tmp: <-c fmt.Println("如果c是非阻塞,我会一直被循环打印") } } func main() { c<- 6 //这一步是往管道里写,是非阻塞的,因为设了缓冲 test() //那么从管道里读呢,能直接非阻塞吗,我意思是说即使把缓冲读完了,依旧要非阻塞 } ``...阅读全文

Go语言学习-time包

go语言的time包 组成 time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1日1点1分1秒 那一刻(后台记录的是unix时间,从1970年开始计算) 时长就是某一刻与另一刻的差,也就是耗时 函数 Sleep函数 time.Sleep(time.Duration) 表示睡多少时间,睡觉时,是阻塞状态 fmt.Println("start sleeping...") time.Sleep(time.Second) fmt.Println("end sleep.") //【结果】...阅读全文

博文 2016-10-08 10:00:04 tree2013

Go 语言中 channel 使用总结

Go 语言中的 channel 是实现 goroutine 间无锁通信的关键机制,他使得写多线程并发程序变得简单、灵活、触手可得。下面就个人理解对 channel 使用过程中应该注意的地方进行一个简要的总结。 channel 分类: 不带缓存 channel, 带缓存 channel (1)不带缓存 channel 语法: (a)创建channel make(chan type) e.g. ch := make(chan int) (b)通信方式(由于chan操作类似于Queue,为便于理解这里用EnQueue,DeQueue来描述通信操作) EnQueue: ch <- typevar DeQueue: var := <- ch e.g. ch <- 1 v := <-ch 关键: 调用c...阅读全文

博文 2015-06-17 23:00:51 u013148156

golang 长连接

参考:https://segmentfault.com/a/1190000017866100 package main import ( "fmt" "net/http" "time" "context" "sync" ) var Status map[string](chan string) = make(map[string](chan string)) var Timeout = 1000 var Mutex sync.Mutex func Get(w http.ResponseWriter, r *http.Request) { key, ok := r.URL.Query()["key"] fmt.Println(key[0]) if !ok || len(key) < 1 { f...阅读全文

博文 2019-11-20 19:32:46

用Golang将图片转化成ASCII码

用Golang将图片转化成ASCII码 在开始之前先看看最终效果: 项目地址在这里:https://github.com/qeesung/im... , 欢迎star 我们都知道图片是通过一个像素点矩阵组成的,每一个像素点都是有四个值,分别是R,G,B,A组成,其中RGB就是红色,绿区,蓝色,简称三原色,在计算机中取值从0-255,而A则是颜色的透明度,取值0.0-1.0。 我们现在要做的就是将一个彩色的图片转化成一个由ASCII组成的图片,换句话说,就是将RGBA像素点的矩阵转化成一个由字符组成的矩阵,必要的时候再给字符加上颜色就可以啦。 (R, G, B, A) (R, G, B, A) (R, G, B, A) char1, char2, char3 (R, G, B, A) (R, ...阅读全文

博文 2018-10-21 17:34:39 qeesung

诚聘golang开发工程师武汉

因公司发展需要武汉分公司招聘:Golang技术工程师3名 一:岗位要求 1、熟悉golang语言,精通JAVA/Python/C++/Go/PHP/solidity等语言经验中至少一种编程语言或其他开发语言, 具有良好的编程 习惯和风格。 2、专科及以上学历,软件工程、计算机等相关专业,具有较强的学习沟通和口头表达能力。 3、对计算机网络系统有深刻理解,有分布式,点对点网络协议或应用开发经验。 二:有以下经验优先; 1、有一年以上GO语言开发经验或有实际相关项目经验均口,有开发过撮合制交易系统,大并发,分布式架构应用系统优先。 2、熟悉TCP/IP协议、HTTP协议,了解P2P网络协议,最好有了解区块链底层和以太坊接口和区块链智能合约...阅读全文

【Go学习笔记】 1、Go编程基础

什么是Go? Go 是一门 并发支持、垃圾回收和编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。 Go的主要特点有哪些? 类型安全 和 内存安全 以非常 直观 和 极低代价 的方案实现 高并发 高效的垃圾回收机制 快速编译 为多核计算机提供性能提升的方案 UTF-8编码支...阅读全文

博文 2017-05-30 05:08:48 HundredLee

分布式分布订阅消息系统

image.png 几千行 C 代码实现了的一个优先级/延时队列,短小精悍 概念 tube - 消息通道,类似于 kafka 里面的 topic, 用来存储某一类或者业务的任务 job - 生产和消费的基本单元,每个 job 都会有一个 id 和 优先级 特点 1、协议,类 Memcached 协议, 非二进制安全 2、全内存, 可开启 binlog, 断电从 binlog 恢复数据 3、单线程, 使用 epoll/kqueue 来实现事件机制 基于golang和beanstalk封装的分布式发布订阅消息系统 主要工作 1、producer消息路由 2、维护client与topic的订阅关系 3、dispatcher并发投递消息给多个相关订阅者,从而支持1对N的关系 delivery gua...阅读全文

博文 2019-03-22 18:34:43 loloxiaoz

高可用 Redis 服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文

博文 2018-10-07 21:34:39 JAVA高级架构开发

Golang Web开发时前端出现谜之空白换行的坑

在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分。 分析: 查看出现问题页面的网页源代码,复制空白换行部分转码为Unicode编码,发现其中包含了\u2028这样的字符【图一】。 【图一】 另外,直接在浏览器检查里边的html选择Edit as html,也可发现在空白处存在小红点,鼠标移上会直接显示该字符是\u2028【图二】。查阅资料发现,这样的换行符在JavaScript中并不支持。 【图二】 解决方法: 在网页检查可以发现,直接删除这些小红点便可解决问题。网上有直接前端处理的方式,即搜索页面中的\u2028并将其替换为\\u2028即可,当然也可以在后台使用Golang进行处理,即在输出h...阅读全文

博文 2016-08-11 12:00:00 yate1996

系统学习技术的方法

1、为什么会有这个东西(why): 1)这个技术出现的背景、初衷,要达到的目标和解决什么问题;2、这门技术是什么原理(what):1) 这个技术的组成部分和关键点,2) 底层实现原理和关键实现;3、这门技术使用起来怎么样,好不好(how):1) 这个技术的优点和缺点,2) 这个技术适用的业务场景,3) 和已有技术的之间的对比 举个例子:1、 为什么会出现python这个语言,主要是实现什么目标2、python语言的基础语法是什么,模块是什么,内存管理是怎样的,底层怎么实现的?3、python的优缺点是什么, 用起来感觉怎么样, 和java\c++、golang相比,有什么不一样呢?4、哪些场景可以用python开发...阅读全文

博文 2018-11-16 02:34:38 wallehu_1111

Go并发之channel

自公众号:灰子学技术原文链接:https://mp.weixin.qq.com/s/PIb-gGBootc6581pHhi5ew学习channel的时候,笔者问了自己几个问题,个人觉得弄明白了这些问题,至少应该会使用channel了。本文也会从这些问题着手,来讲解channel。问题1: 什么是channel?是用来做什么的?1.channel是Go里面的一种类型,它是Go语言为goroutine提供的一种通讯机制,不同的goroutine需要通过channel来相互通讯。2.channel是有类型的,并且还有方向,可以是单向的,也可以是双向的,类似与unix中的pipe(管道)。3.channel是通过<-和->来完成读写操作的,channel<-value(表示往channel写数据),...阅读全文

博文 2019-09-07 11:27:29 ZhDavis

golang的sync.Pool的使用

可以看这篇文章 https://blog.csdn.net/yongjian_lian/article/details/42058893 这个玩意的出现是为了解决 gc 的问题, 核心点在于 重用对象, 提高性能. 减少内存的分配. 下面看个例子 package main import ( "sync" "fmt" ) func main() { p := &sync.Pool{ New: func() interface{} { return 0 }, } a := p.Get().(int) fmt.Println(a) p.Put(1) p.Put(4) p.Put(2) p.Put(5) b := p.Get().(int) // runtime.GC() // 执行回收操作后 1 ...阅读全文

博文 2019-03-08 01:34:40 个00个

go语言接口和方法集问题笔记

注意: 此文章只是我的个人笔记,如有谬误,错误, 请一定指出! package main import "fmt" //IA test for methodset. type IA interface { Value() Pointer() } //A is a test type. type A int //Value receiver. func (a A) Value() { fmt.Printf("Value:%p, %d\n", &a, a) } //Pointer receiver. func (a *A) Pointer() { fmt.Printf("Pointer:%p, %d\n", a, *a) } func main() { //type A method set: ...阅读全文

博文 2016-08-30 05:00:01 htyu_0203_39

关于go执行ListenAndServe以后阻塞的问题

我在程序里启动了http服务,监听端口8888,用于接收信息,本希望启动http后再执行其他的代码,但是程序执行了ListenAndServe后,后面的代码没有执行,好像都阻塞在ListenAndServe了,请高手帮忙。。。 ```go func main() { logger.Println("start .....") http.ListenAndServe(":8888", nil) fmt.Println("hello") } ``` ...阅读全文

阿里大鱼Golang SDK —— alidayu-go

扩展 这个SDK的关键点不是实现了阿里大鱼的3个API,而是给使用者提供了一个可以自有扩展的框架,以【短信发送记录查询】接口为例。 type AlibabaAliqinFcSmsNumQueryRequest struct { BizId string `json:"biz_id"` RecNum string `json:"rec_num"` QueryDate string `json:"query_date"` CurrentPage string `json:"current_page"` PageSize string `json:"page_size"` } func NewAlibabaAliqinFcSmsNumQueryRequest() *AlibabaAliqinFcS...阅读全文

博文 2017-07-05 16:07:17 gwpp

Java消息队列总结只需一篇解决ActiveMQ、RabbitMQ、ZeroMQ、Kafka

一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式a、串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。b、并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。...阅读全文

博文 2018-09-20 16:17:45 Java1324

golang 里goroutine产生的线程数量

import "os" func main() { for i:=0; i<20; i++ { go func() { for { b:=make([]byte, 10) os.Stdin.Read(b) // will block } }() } select{} } 会产生21个线程: runtime scheduler(src/pkg/runtime/proc.c)会维护一个线程池,当某个goroutine被block后,scheduler会创建一个新线程给其他ready的goroutine GOMAXPROCS控制的是未被阻塞的所有goroutine被multiplex到多少个线程上运...阅读全文

博文 2017-02-09 16:46:50 funkygao

性能测试要关注的目标

不可置否,在对APP的整个测试环节中,性能测试是一个很重要的环节,它直接影响了用户的体验,那么,对于APP的性能测试,我们到底需要关注那些点呢? 其实,我们可以想想在软件设计、部署、使用、维护中一共有哪些角色参与,然后再考虑这些角色各自关注的性能点是什么,那么作为一个软件性能测试工程师,我们就能够从中总结出,对于APP的性能测试主要应该关注哪些比较重要的点。 1.从用户角度出发 开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。 对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当响应时间较小时,用户体验是很好的...阅读全文