博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go 通过 channel 控制并发任务
阅读量:7174 次
发布时间:2019-06-29

本文共 652 字,大约阅读时间需要 2 分钟。

package mainimport "fmt"func main() {    workChan := make(chan int, 10000) //存储chan    controlChan := make(chan int, 100) //控制chan    var work int    var mange int      for i := 0; i < 100; i++ {        go func() {            defer func() {controlChan <- 1}()            for j := 0; j < 100; j++ {                workChan <- i            }        }()    }    for range controlChan {        mange++ //当控制chal 满 则关闭控制与工作channel        if mange == 100 {            close(workChan)            close(controlChan)        }    }    for range workChan {        work++    }    fmt.Println("channel长度", work)}

 

转载于:https://www.cnblogs.com/a-flydog/p/11010570.html

你可能感兴趣的文章
JavaWeb之04javaScript基础&DOM目录
查看>>
AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(四)
查看>>
OO第一次单元总结
查看>>
JSP总结
查看>>
许可协议BSD GPL MPL LGPL APL-转载
查看>>
Python爬虫7-Cookie & Session
查看>>
superMap添加marker及连线
查看>>
leetcode 590.N-ary Tree Postorder Traversal N叉树的后序遍历
查看>>
C/C++中的getline函数总结
查看>>
Angular错误:静态解析符号值。不支持函数调用
查看>>
算法学习(2)----丢番图方程
查看>>
c# 启动的时候向其他程序传值
查看>>
Openresty+redis实现灰度发布
查看>>
DOM对象与Jquery对象区别
查看>>
第34天:日期函数、定时器、倒计时
查看>>
Scala - 正则表达式匹配例子
查看>>
C#操作XML增删改查
查看>>
Java 的 Api 文档生成工具 JApiDocs 程序文档工具
查看>>
SRF 认证
查看>>
作业一
查看>>