SF
Go语言实战
Go语言实战
注册登录
关注博客
注册登录
主页
关于
RSS
Golang的WaitGroup陷阱
大彬
2018-11-16
阅读 2 分钟
9.5k
sync.WaitGroup是并发环境中,一个相当常用的数据结构,用来等待所有协程的结束,在写代码的时候都是按着例子的样子写的,也没用深究过它的使用。前几日想着能不能在协程中执行Add()函数,答案是不能,这里介绍下。
轻松检测Golang并发的数据竞争
大彬
2018-11-15
阅读 2 分钟
9.5k
Golang中我们使用Channel或者sync.Mutex等锁保护数据,有没有一种机制可以检测代码中的数据竞争呢? 背景知识数据竞争是并发情况下,存在多线程/协程读写相同数据的情况,必须存在至少一方写。另外,全是读的情况下是不存在数据竞争的。 使用race检测数据竞争 go build有个标记race可以帮助检测代码中的数据竞争。 {代码...
Golang定时器陷阱
大彬
2018-11-14
阅读 4 分钟
12.4k
所谓陷阱,就是它不是你认为的那样,这种认知误差可能让你的软件留下隐藏Bug。刚好Timer就有3个陷阱,我们会讲 1)Reset的陷阱和 2)通道的陷阱,3)Stop的陷阱与Reset的陷阱类似,自己探索吧。
Go的map中删除子map,内存会自动释放吗?
大彬
2018-11-14
阅读 3 分钟
5.5k
在C++中,如果使用了map包含map的数据结构,当要释放上层map的某一项时,需要手动释放对应的子map占用的内存,而在Go中,垃圾回收让内存管理变得如此简单。
轻松入门Golang pprof实用不忽悠
大彬
2018-11-12
阅读 3 分钟
7.9k
golang自带的prof包是runtime/pprof,这个是低级别的,需要你手动做一些设置等等周边工作,不利于我们快速上手,利用pprof帮助我们解决实际的问题。这里推荐davecheney封装的pprof,它可以1行代码,让你用上pprof,专心解决自己的代码问题,下载:
1
2
(current)
上一页
2
(current)
下一页