一个select死锁问题

话说前几天我遇到了一个死锁问题,当时想了一些办法糊弄过去了,不过并没有搞明白问题的细节,周末想起来便继续研究了一下,最终便有了这篇文章。 让我们搞一段简单的代码来重现一下当时我遇到的问题: package main import sync func main() { var wg sync.WaitGroup foo := make(chan int) bar := make(chan int) closing := make(chan struct{}) w

一个select死锁问题

话说前几天我遇到了一个死锁问题,当时想了一些办法糊弄过去了,不过并没有搞明白问题的细节,周末想起来便继续研究了一下,最终便有了这篇文章。 让我们搞一段简单的代码来重现一下当时我遇到的问题: package main import sync func main() { var wg sync.WaitGroup foo := make(chan int) bar := make(chan int) closing := make(chan struct{}) w