世界消息!go的数据类型-其他数据类型-channel(二)
(资料图片仅供参考)
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之间的通信和同步,从而使程序变得简单和高效。
关键词:
上一篇:全球快看点丨失业补助金一个月多少钱 失业补助金怎么申请
下一篇:最后一页
精心推荐
- 世界消息!go的数据类型-其他数据类型-channel(二)
- 全球快看点丨失业补助金一个月多少钱 失业补助金怎么申请
- 知名私募喊话:AI“赶尽杀绝” 环球即时
- 当前关注:俄外交部:俄罗斯将驱逐20余名德国外交官
- 观热点:克洛普评价诺丁汉森林主帅库珀:他受到整个足球界的尊敬
- 今日快讯:马斯克:“星舰”1-2个月内可准备再次发射 当前热闻
- 环球快消息!健身服务易发纠纷 诚信经营依法维权
- 30万元的合同遗失在地铁上,轨道民警多方联动迅速找回
- 陪伴的英文怎么说_陪伴的英文_焦点速递
- 新动态:山东女排无缘总决赛!安家杰豪言壮志成空,后排脆弱前排不下球
- 嘉定伯乐人才网官网_伯乐影视网
- 在绿色之“芯”绽放!湖南举办第11届“爱地球·看我的”公益宣传活动|天天聚看点
- 全球即时看!舟山大桥_关于舟山大桥的介绍
- 三居室英语_三居室 世界即时看
X 关闭
X 关闭
产业
-
不用跑北京 在家门口也能挂上顶...
日前,我省首个神经疾病会诊中心——首都医科大学宣武医院河北医院...
-
“十四五”期间 河北省将优化快...
从省邮政管理局获悉,十四五期间,我省将优化快递空间布局,着力构...
-
张家口市宣化区:光伏发电站赋能...
3月19日拍摄的张家口市宣化区春光乡曹庄子村光伏发电站。张家口市宣...
-
“张同学”商标被多方抢注 涉及...
“张同学”商标被多方抢注,官方曾点名批评恶意抢注“丁真” ...
-
山东济南“防诈奶奶团”花式反诈...
中新网济南12月15日电 (李明芮)“老有所为 无私奉献 志愿服...
-
广州新增1例境外输入关联无症状...
广州卫健委今日通报,2021年12月15日,在对入境转运专班工作人...
-
西安报告初筛阳性病例转为确诊病例
12月15日10:20,经陕西西安市级专家组会诊,西安市报告新冠病毒...
-
广东东莞新增本土确诊病例2例 ...
(抗击新冠肺炎)广东东莞新增本土确诊病例2例 全市全员核酸检测...
-
中缅边境临沧:民警深夜出击捣毁...
中新网临沧12月15日电 (胡波 邱珺珲)记者15日从云南临沧边境...
-
“土家鼓王”彭承金:致力传承土...
中新网恩施12月15日电 题:“土家鼓王”彭承金:致力传承土家...