Programming
不容忽视的 Goroutine Leak 以及如何排查
· ☕ 4 min read

我们可以用 golang 很轻松地进行并发编程,但是在并发编程过程中,得留意 goroutine 的泄露。

什么是 goroutine 泄露

其实 goroutine 泄露就是内存泄露的一种:你开启了一个 goroutine ,但是你开启完了就把它忘了或者不管它了,它以后是死是活,忙不忙,是不是阻塞了,你都就不关心它!(渣男/渣女行为)。然后这个 goroutine 要是一直活着就会占用你的内存资源,虽然一个 goroutine 占用的内存资源很少,但是要是成千上万的 goroutine 泄露了,后果还是很严重的。这就是 goroutine 泄露。


Condition Variables: 搞明白 go 语言的 sync.Cond
· ☕ 3 min read

条件变量(Condition VAriables)是一种并发原语,条件变量允许一个线程在某个条件不满足的时候进入睡眠状态,当条件满足时再唤醒它。条件变量还支持当条件满足时,唤醒一个(wake one)和唤醒所有(wake all)。