Go语言使用sync.WaitGroup时发生deadlock可能的原因
今天在做A Tour of Go中关于并发编程的练习时,发现使用sync.WaitGroup类型变量作为函数参数时容易出现死锁的问题,查阅资料后发现解决办法为:用*sync.WaitGroup类型作为参数
因为若用sync.WaitGroup类型变量作为函数参数,传参时值拷贝,会导致在这个函数中对这个变量进行的.Done()操作时对这个拷贝的WaitGroup做的,而不是原来的WaitGroup,这就会导致原来的WaitGroup一直不被Done,一只Wait在那里产生死锁。