小编Jus*_*tin的帖子

单通道上Goroutine解锁的顺序

Goroutines在频道上阻止的顺序是否决定了它们将解锁的顺序?我并不关心发送的消息的顺序(保证它们是有序的),而是Goroutines的顺序,它将解锁.

想象一下,ch在多个Goroutines(1,2和3)之间共享一个空的Channel ,每个Goroutine都试图接收一条消息ch.由于ch是空的,每个Goroutine都会阻止.当我发送消息时ch,Goroutine 1会先取消阻止吗?或者2或3可能会收到第一条消息?(反之亦然,Goroutines试图发送)

我有一个操场,似乎表明Goroutines阻止的顺序是它们被解锁的顺序,但我不确定这是否是一个未定义的行为,因为实现.

channel go

9
推荐指数
1
解决办法
833
查看次数

标签 统计

channel ×1

go ×1