如果我在两个频道上进行选择:
for {
select {
case <-chan1:
// do something
case <-chan2:
// do something else
}
}
在一个单独的 goroutine 中,我依次写入这些通道:
chan1 <- "blah"
chan2 <- true
我能保证在“做其他事情”之前看到“做某事”吗?
我知道如果 select 有两个未阻塞的通道,它会随机选择,但我认为如果 select 已经阻塞,写入第一个通道可能会可靠地“中断”写入 goroutine,这意味着 select 将在之前未阻塞的第一个通道上运行第二次写。
浮云间
相关分类