2020-10-27:go中select的執行流程是什么?#福大大架構師每日一題#
uj5u.com熱心網友回復:
select 不會按照任何規則或者優先級選擇到達的channel。go標準庫在每次訪問的時候,都會將他們順序打亂,也就是說不能保證任何順序。所以是并行執行的。uj5u.com熱心網友回復:
鎖[i]定scase陳述句中所有的channel按照隨機順序檢測scase中的channel是否ready
如果case可讀,則讀取channel中資料,解鎖所有的channel,然后回傳(case index)
如果case可寫,則將資料寫入channel,解鎖所有的channel,然后回傳(case index)
所有case都未ready,則解鎖所有的channel,然后回傳(default index)
所有case都未ready,且沒有default陳述句
將當前協程加入到所有channel的等待佇列
當將協程轉入阻塞,等待被喚醒
喚醒后回傳channel對應的case index
如果是讀操作,解鎖所有的channel,然后回傳(case index)
如果是寫操作,解鎖所有的channel,然后回傳(case index)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/194388.html
標籤:Java相關
