如果我在兩個(gè)頻道上進(jìn)行選擇:for { select { case <-chan1: // do something case <-chan2: // do something else }}在一個(gè)單獨(dú)的 goroutine 中,我依次寫入這些通道:chan1 <- "blah"chan2 <- true我能保證在“做其他事情”之前看到“做某事”嗎?我知道如果 select 有兩個(gè)未阻塞的通道,它會(huì)隨機(jī)選擇,但我認(rèn)為如果 select 已經(jīng)阻塞,寫入第一個(gè)通道可能會(huì)可靠地“中斷”寫入 goroutine,這意味著 select 將在之前未阻塞的第一個(gè)通道上運(yùn)行第二次寫。
- 1 回答
- 0 關(guān)注
- 145 瀏覽
添加回答
舉報(bào)
0/150
提交
取消