(相关资料图)
Channel的使用示例
以下是一个使用Channel的示例程序,该程序创建了两个Goroutine,并使用Channel在它们之间进行通信和同步。
package mainimport ("fmt""time")func worker(id int, jobs <-chan int, results chan<- int) {for j := range jobs {fmt.Printf("worker %d started job %d\n", id, j)time.Sleep(time.Second)fmt.Printf("worker %d finished job %d\n", id, j)results <- j * 2}}func main() {jobs := make(chan int, 100)results := make(chan int, 100)for w := 1; w <= 3; w++ {go worker(w, jobs, results)}for j := 1; j <= 9; j++ {jobs <- j}close(jobs)for a := 1; a <= 9; a++ {<-results}}
在这个示例程序中,我们定义了一个名为worker
的函数,它模拟了一个工作任务。这个函数接收一个jobs
的单向Channel用于接收工作任务,以及一个results
的单向Channel用于发送工作结果。当函数接收到一个工作任务时,它会等待一秒钟,然后将工作结果发送到results
的Channel中。
在main
函数中,我们创建了两个Channel:一个jobs
的Channel用于发送工作任务,一个results
的Channel用于接收工作结果。然后,我们启动了三个Goroutine,并将它们分别分配给worker
函数。接下来,我们向jobs
的Channel中发送了9个工作任务,并关闭了这个Channel。最后,我们从results
的Channel中接收了9个工作结果。
在这个示例程序中,我们使用Channel实现了工作任务的分配和工作结果的收集。通过使用Channel,我们可以轻松地实现Goroutine之间的通信和同步,从而使程序变得简单和高效。
下一篇:最后一页
X 关闭
-
天天快看点丨青岛西海岸一宗商住用地将于下月法拍 起拍价1.61亿元
青岛西海岸一宗商住用地将于下月法拍起拍价1 61亿元,当代,西海岸,青岛市,商住用地,住宅用地,土地使用权
-
化学中d相对原子质量是多少_d的相对原子质量是多少
1、d的相对原子质量是相对原子质量(Ar),是指任何一种原子的平均原子质量与一个碳原子质量的比值,称为该原
-
19.28万起 B+级豪华风尚轿车红旗H6厦门区域魅力上市 每日热文
4月23日,B+级豪华风尚轿车红旗H6厦门区域魅力上市。一汽红旗中南区事业部厦门区域营销总监刘泽、亿海汽车
-
中国近现代新闻出版博物馆开始内测运行 5月18日正式开放
中国近现代新闻出版博物馆开始内测运行5月18日正式开放---作为全国首座新闻出版专业博物馆,坐落于上海市杨
-
热头条丨麝香保心丸功效与作用 麝香保心丸说明书和速效救心的区别
今天来聊聊关于麝香保心丸功效与作用,麝香保心丸说明书和速效救心的区别的文章,现在就为大家来简单介绍下
-
天天热推荐:心经印谱
1、《心经印谱》是2019年8月商务印书馆出版的图书,作者是郑怀宝,本书通过作者深厚的书法和篆刻功底,对《
-
天天精选!罗马诺:皇马将为卡马文加提供一份新合同,违约金或达10亿欧
近日,据意大利名记罗马诺消息,皇马将为卡马文加提供新合同,并为其涨薪。这位球员的违约金可能会达到10亿
-
世界微资讯!综合税率是指_综合税率是什么意思
1、综合税率一般是指各种税收综合起来的税收负担。2、例如,营业税的税额为营业额的3%,即营业税=营业额*3%
-
北京摩托车牌照多少钱?北京办摩托车牌照多少钱啊?
北京摩托车牌照多少钱?北京办摩托车牌照多少钱啊?北京摩托车上牌流程及费用是先拿着资料保险单去车管所办
-
全新业态古韵焕新 江苏盐南高新区这座千年古镇即将开街 全球通讯
珠溪古镇夜景。盐南高新区供图“镜花缘”般的奇缘梦境,光怪陆离的歌舞大秀,馋涎欲滴的特色美食……位于江