Goroutines 作為 Go 的輕量級線程,對於並發性至關重要。了解它們何時讓出控制對於優化程式碼效能至關重要。
傳統搶佔點
以前,goroutines 僅在特定點讓出,包括:
非同步搶佔(Go 1.14 )
範例中的搶佔點
問題中提供的範例程式碼不包含函數呼叫或阻塞系統呼叫。但是,輸出仍然顯示訊息交錯,表明 goroutine 正在讓步。
搶佔的可能原因
結論
在 Go 程式中,goroutines 現在幾乎可以在任何時候異步地讓出控制權 觀點。這是對需要特定搶佔點的早期版本的改進。然而,重要的是要意識到垃圾收集的潛在影響以及其他可能影響 goroutine 調度的因素。
以上是Go 中 Goroutines 何時屈服:同步搶佔與非同步搶佔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!