Concurrency Golang Channel select语句

Concurrency Golang Channel select语句,concurrency,go,channels,Concurrency,Go,Channels,只是最近在尝试围棋。我想知道如果有一个select语句在几个通道上等待通信,如果一条消息同时在两个或多个通道上出现,会发生什么情况。如果所有消息同时出现,select将如何确定接受哪个频道 谢谢 来自: 如果可以进行多个情况,则会做出统一的伪随机选择,以决定将执行哪一个通信 因此,选择是不确定的。Golang规范确实值得一读。至少浏览一遍,然后深入阅读你不熟悉的领域。你会很高兴你做到了:)这种非决定论是CSP的一个重要组成部分,Go的渠道是基于CSP的。在CSP中,并发活动是严格确定的,这是违反

只是最近在尝试围棋。我想知道如果有一个select语句在几个通道上等待通信,如果一条消息同时在两个或多个通道上出现,会发生什么情况。如果所有消息同时出现,select将如何确定接受哪个频道

谢谢

来自:

如果可以进行多个情况,则会做出统一的伪随机选择,以决定将执行哪一个通信


因此,选择是不确定的。

Golang规范确实值得一读。至少浏览一遍,然后深入阅读你不熟悉的领域。你会很高兴你做到了:)这种非决定论是CSP的一个重要组成部分,Go的渠道是基于CSP的。在CSP中,并发活动是严格确定的,这是违反直觉的。只有做出选择(即选择)时,才会出现非决定论。@Rick-777是在70年代末和80年代初分阶段开发的CSP。直接基于CSP,但仅包括非确定性选择;不需要确定性的选择。在这方面,围棋就像奥卡姆。