Go具有一種機制,可以從幾個通道之一的select語句中進行阻塞讀取。所以你可以說select { case <- c1: case <- c2:}將阻塞,直到我們從這兩個通道中的任何一個獲得輸入。非常好。但這要求我在源代碼中指定要輪詢的通道數(shù)。如果我有一個通道的一部分或數(shù)組,并且想在獲得任何通道的輸入之前都想阻塞,該怎么辦?
3 回答

瀟瀟雨雨
TA貢獻1833條經(jīng)驗 獲得超4個贊
只是想一想,但您可以使用多路復用模式,在該模式中產(chǎn)生一個帶有2個通道的goroutine,該通道在兩個通道上均阻塞,然后將輸出發(fā)送到新通道。然后,您可以從列表中動態(tài)構(gòu)建這些樹,將所有內(nèi)容集中到單個通道,然后繼續(xù)閱讀。
- 3 回答
- 0 關(guān)注
- 202 瀏覽
添加回答
舉報
0/150
提交
取消