Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在使用select并按顺序将值输入到2个通道时,所有goroutine都处于休眠状态?_Go_Deadlock_Goroutine - Fatal编程技术网

为什么在使用select并按顺序将值输入到2个通道时,所有goroutine都处于休眠状态?

为什么在使用select并按顺序将值输入到2个通道时,所有goroutine都处于休眠状态?,go,deadlock,goroutine,Go,Deadlock,Goroutine,我有两个通道,我在主函数开始时将值传递给它们,然后我有一个匿名goroutine,它应该打印值: 包干管 进口 fmt func main{ rand1:=makechan int rand2:=makechan int rand1对通道的写入将被阻止,直到另一个goroutine从中读取。在启动读卡器goroutine之前,您的程序正在尝试写入通道。请先启动读卡器goroutine,然后再写入通道 并不是说它的编写方式,goroutine将只从其中一个通道读取并返回,因此您的程序将再次死锁,因

我有两个通道,我在主函数开始时将值传递给它们,然后我有一个匿名goroutine,它应该打印值:

包干管 进口 fmt func main{ rand1:=makechan int rand2:=makechan int
rand1对通道的写入将被阻止,直到另一个goroutine从中读取。在启动读卡器goroutine之前,您的程序正在尝试写入通道。请先启动读卡器goroutine,然后再写入通道


并不是说它的编写方式,goroutine将只从其中一个通道读取并返回,因此您的程序将再次死锁,因为第二次写入将被阻塞。

下面是它应该如何编写的-