网上总是能看到有人说go自带了死锁检测,只要有死锁发生runtime就能检测到并实时报错退出,因此go不会被死锁题目困扰。
这说明了口口相传知识的有用性是一样平常值得怀疑的,同时也再一次证明了没有银弹这句话的含金量。
这个说法的杀伤力在于它虽然不对,但也不是全错,真真假假很轻易让人失去判断力。
死锁检测失灵
死锁我就不多解释了,我们先来看个简朴例子:
[code]package mainimport ( "fmt")func main() { c := make(chan int, 1) fmt.Println( |