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