go
hotdust
想成为一名JAVA方向的专家,做更多更好的基于JAVA的软件。
展开
-
go - 关于使用 channel 时遇到的死锁问题
1,发生死锁的代码func deadlockTest() { ch := make(chan int) results := make(chan int) for i := 0; i < 2; i++ { go func() { // 把从channel里取得的数据,再传回去 x := <-ch原创 2017-10-19 11:47:00 · 6332 阅读 · 0 评论 -
go - 关于 vendor 和 包管理glide
关于 vendor: golang使用vendor目录来管理依赖包 理解Go 1.5 vendor关于 glide glide使用 Golang Vendor 包管理工具 glide 使用教程 glide(官方)原创 2017-11-06 19:28:08 · 2026 阅读 · 0 评论 -
Mac 安装 GVM 和 GO
0,什么是GVMGVM是用来控制多版本的一个工具,有点像python中的virtualenv。 使用方法请参考: 用gvm管理Go项目的workspace Go 语言多版本安装及管理利器 - GVM1,安装GVM bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gv原创 2017-10-14 20:29:22 · 9054 阅读 · 1 评论 -
GVM 使用方法
上网找了找,没有关于GVM太好的使用说明,昨天弄这个也折腾了半天。有一个外国的帖子不错,把内容简单转过来,翻译一下。关于安装不细说了,可以看Mac 安装 GVM 和 GO。1,建立一个 pkgset。每个Go project 对应一个pkgset,当切换pkgset的话,相对应的 GOPATH 等环境变量也跟切换了。 $ gvm pkgset create ottemo2,切换到新建立的pkg翻译 2017-10-15 13:25:36 · 12509 阅读 · 1 评论 -
go - context 用法
1,context作用1,通过context,我们可以方便地对同一个请求所产生地goroutine进行约束管理,可以设定超时、deadline,甚至是取消这个请求相关的所有goroutine。形象地说,假如一个请求过来,需要A去做事情,而A让B去做一些事情,B让C去做一些事情,A、B、C是三个有关联的goroutine,那么问题来了:假如在A、B、C还在处理事情的时候请求被取消了,那么该如何优雅地同转载 2017-11-13 13:41:46 · 4290 阅读 · 0 评论 -
go - time包的定时器/断续器
from: https://www.kancloud.cn/digest/batu-go/153534定时器在time包中有两个函数可以帮助我们初始化time.Timertime.Newtimer函数初始化一个到期时间据此时的间隔为3小时30分的定时器 t := time.Newtimer(3*time.Hour + 30*time.Minute) 注意,这里的变量t是*time.NewT转载 2017-11-18 11:46:59 · 465 阅读 · 0 评论 -
etcd cluster 搭建
启动cluster启动集群有3个方式:1,static方式这种方式可以参考 Set up a local cluster 的设置方法。这种设置方式的特点时,需要提前知道参与 cluster 机器的 IP。2,etcd discovery方式这种方式避免了 static 方式中存在的问题:需要提前知道参与 cluster 机器的 IP。这种方式的做法就是:需要一个“已经存在”的 etcd clust原创 2017-11-14 20:03:45 · 1467 阅读 · 0 评论 -
go - 测试学习文章总结
资料的顺序是:由上至下,由浅入深1,三分钟了解 go testGo怎么写测试用例:非常适合立刻上手。这个文章是build-web-application-with-golang书中的一部分。这个本也非常不错,非常适合简单入门。【译】GO 中如何进行单元测试:也是一个由浅入深的文章。文章里有一些测试类的写法,可以学习一下。而且还讲到了TestMain方法。所有被测试方法执行前,都要一下这个方法,所原创 2017-11-21 12:34:28 · 451 阅读 · 0 评论