[翻译/搬运] 写出安全 bash script 的简洁模板
· ☕ 9 min read
这篇文章能让你以后写出更安全的 bash script
我们可以用 golang
很轻松地进行并发编程,但是在并发编程过程中,得留意 goroutine
的泄露。
其实 goroutine
泄露就是内存泄露的一种:你开启了一个 goroutine
,但是你开启完了就把它忘了或者不管它了,它以后是死是活,忙不忙,是不是阻塞了,你都就不关心它!(渣男/渣女行为)。然后这个 goroutine
要是一直活着就会占用你的内存资源,虽然一个 goroutine
占用的内存资源很少,但是要是成千上万的 goroutine
泄露了,后果还是很严重的。这就是 goroutine
泄露。
条件变量(Condition VAriables)是一种并发原语,条件变量允许一个线程在某个条件不满足的时候进入睡眠状态,当条件满足时再唤醒它。条件变量还支持当条件满足时,唤醒一个(wake one)和唤醒所有(wake all)。