天天看點

[Go] golang無緩沖通道實作工作池控制并發

展示如何使用無緩沖的通道建立一個goroutine池,控制并發頻率

1.無緩沖通道保證了兩個goroutine之間的資料交換

2.當所有的goroutine都忙的時候,能夠及時通過通道告知調用者

3.無緩沖的通道不會有工作在隊列裡丢失或卡住

4.建立一個工作池,比如這時候會建立出2個goroutine,被一個無緩沖通道阻塞住,等待在那裡,除非通道關閉,在目前的gorotine上會無限循環讀取通道,不會退出

5.當有一堆的任務goroutine被發送過來的時候,會先傳送給那一個通道,這時候不管有多少個,都會阻塞并等待上面那倆工作完,就起到了控制并發的目的

[Go] golang無緩沖通道實作工作池控制并發

  

繼續閱讀