Goroutines 在通道上阻塞的顺序是否决定了它们将解除阻塞的顺序?我不关心发送的消息的顺序(它们保证是有序的),而是将解除阻塞的 Goroutine 的顺序。
想象一个ch
在多个 Goroutines(1、2 和 3)之间共享的空 Channel ,每个 Goroutine 都试图在 上接收消息ch
。由于ch
为空,每个 Goroutine 都会阻塞。当我向 发送消息时ch
,Goroutine 1 会先解除阻塞吗?或者 2 或 3 人可能会收到第一条消息?(反之亦然,Goroutines 尝试发送)
我有一个操场似乎表明 Goroutines 阻塞的顺序就是它们被解除阻塞的顺序,但我不确定这是否是由于实现而导致的未定义行为。
三国纷争
大话西游666
相关分类