link
。函数 b
在两个地方接收它,因此调用了 print
a 和 b。所以基本上每一秒 a 和 b 都应该出现在控制台中。但由于我不知道的原因,它没有发生,程序打印 a 和 b 一次,然后崩溃。我可能对这个概念理解不够(golang确实不直观),所以我希望我能在这里得到答案。,只有当有 goroutine 从中接收数据时,发送到无缓冲通道的通道才会成功。对于前两次发送,有 goroutine 从
link
通道接收。但是它们收到一个值并终止,并且不再有任何 goroutine 从 link
接收,因此第三个发送到 link
的块。由于没有其他 goroutine 运行,程序出现死锁。,