go 通过 channel 控制并发任务
生活随笔
收集整理的這篇文章主要介紹了
go 通过 channel 控制并发任务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package mainimport "fmt"func main() {workChan := make(chan int, 10000) //存儲chancontrolChan := make(chan int, 100) //控制chanvar work intvar mange intfor i := 0; i < 100; i++ {go func() {defer func() {controlChan <- 1}()for j := 0; j < 100; j++ {workChan <- i}}()}for range controlChan {mange++ //當控制chal 滿 則關閉控制與工作channelif mange == 100 {close(workChan)close(controlChan)}}for range workChan {work++}fmt.Println("channel長度", work)
}
?
轉載于:https://www.cnblogs.com/a-flydog/p/11010570.html
總結
以上是生活随笔為你收集整理的go 通过 channel 控制并发任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【干货】原生js做的一维数组对象,二维数
- 下一篇: 转:数学之美番外篇:平凡而又神奇的贝叶斯