关于Golang中fatal error: all goroutines are asleep - deadlock!报错的几点原因分析

1、channel容量不够
2、channel在make(chan type)时候,没有指定容量,却又向channel里发送值
3、channel中已经没有值了,却又<-channel操作
4、channel<-i后,如果要进行for val:=range channel遍历操作前,没有进行close(channel)操作
5、在声明等待组全局变量(var wg=new(sync.WaitGroup))后,在并发方法体内,忘记加上wg.Done()方法
6、互斥锁(var mutex=new(sync.Mutex)或者var rwMutex=new(sync.RWMutex))没有及时地
   mutex.Unlock()或者rwMutex.Unlock()操作,即没有关闭互斥锁

你可能感兴趣的:(golang,golang,开发语言,后端)