func main() {
var wg sync.WaitGroup
sem := make(chan struct{}, 2) // 最多允許2個并發(fā)同時執(zhí)行
taskNum := 10
for i := 0; i < taskNum; i++ {
wg.Add(1)
go func(id int) {
defer wg.Done()
sem <- struct{}{} // 獲取信號
defer func() { <-sem }() // 釋放信號
// do something for task
time.Sleep(time.Second * 2)
fmt.Println(id, time.Now())
}(i)
}
wg.Wait()
}
golang用通道實現(xiàn)信號量,控制并發(fā)個數(shù)
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 引 對計算機了解的都會知道信號量的作用,當我們多個線程要訪問同一個資源的時候,往往會設置一個信號量,當信號量大于0...
- 信號量是一個整形值并且具有一個初始計數(shù)值,并且支持兩個操作:信號通知和等待。當一個信號量被信號通知,其計數(shù)會被增加...
- 是的,二十五歲的我一事無成。 懶惰,離崗一年半,面試碰壁。 可是,晚么?對于曾經(jīng)想過死亡的人來說,生存那么難都活過...
- 從“無印神話”到垂死掙扎 1980年12月,無印良品作為大型超市西友的自有品牌問世,在全球經(jīng)濟萎靡不振的情形下將“...