弄了一个类似生产者消费者模型,两个协程有一个通道A,不停写入数据,B不停读取数据,因为都是for循环的,是在A里面没有数据的时候关闭Chanel、,还是在B中判断没有数据,超时就退出for循环呢?
loop:
for{
select {
case bb,err := <-*addChan:
if err == false {
break loop
}
addSlice = append(addSlice,bb)
}
}
代码类似这样的,但现在出现了协程死锁了,貌似是这里一直在<-*addChan读取数据导致的等待超时,死锁了,但有对err判断啊,这里难道不会退出for循环么?谢谢了
有疑问加站长微信联系(非本文作者)