簡體   English   中英

sync.WaitGroup是Barrier的實現嗎?

[英]Is sync.WaitGroup an implementation of Barrier?

同步世界中的屏障允許線程等待其他線程到達特定點。 計數信號量允許n個線程訪問共享資源。

因此,從此, sync.WaitGroup是屏障和計數信號量之間的交叉(但沒有任何共享資源的概念)。 這是一個准確的心理模型嗎?

許多事情都可以用作障礙。 在旅途中,最慣用的障礙是渠道。 如果您有多個等待的goroutine,則等待組可能很有用。

雖然可以將等待組用作處理線程(goroutine)的障礙,但這並不是它所能做的。 您可以將N個作業發送給M個goroutine,然后讓waitgroup跟蹤作業而不是完成的goroutine。

等待組的目的僅僅是等待您期望發生的事件數。 這可能是因為goroutines到達了代碼中的某個位置,作業已完成,或者您只是覺得自己喜歡。 如果您僅將其作為障礙物使用心理模型,它將限制您的使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM