channel中发生死锁的情况
情况一: 单线程的情况下,往channel中放入数据量超过其channel的大小的时候
func main(){
var ch = make(chan int, 2)
ch <- 2
ch <- 3
ch <- 8
}
出现的错误如下:
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan send]:
main.main()
/Users/lcq/go/src/go_base/gochanneldemo/channeldemo.go:32 +0x8d
情况二: 单线程的情况下,把channel中的数据全部取出后,还继续取数据的时候
func main(){
var ch = make(chan int, 2)
ch <- 2
ch <- 3
// ch <- 8
// 开始取
共有 0 条评论