在 goroutine 中,無緩衝通道為接收器實現阻塞機制,直到資料可用。然而,同一通道上存在多個接收器時的阻塞行為仍不清楚。
將值傳送到具有多個接收器的通道時,該語言指定:
這意味著最終接收資料並解鎖的接收者是隨機選擇的,沒有任何特定的順序或偏好。這確保了公平性,同時消除了任何特定接收者飢餓的可能性。
select 語句的規範闡明了這種行為:
在具有多個接收器的無緩衝通道的情況下,隨機選擇後第一個可用的通信將是接收數據的通信,並且
對於具有多個接收器的無緩衝通道,向接收器傳送資料是隨機且不確定的,確保接收器之間的公平性,無需任何特定的順序或偏好。
以上是在具有多個接收器的 Go 無緩衝通道中資料傳輸如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!