go的数据类型-其他数据类型-channel(二)
时间:2023-04-22 10:53:17
来源:腾讯云
(资料图片仅供参考)
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(二)
- 孔敏悬
- vivo X Fold2正式发布:搭载2K+ E6旗舰双主屏 快消息
- 湘江周刊·悦读丨把批评提升为生命 热点评
- Mysteel周报:双硅期货技术面分析 焦点热议
- 乳糜胸_乳糜
- 佛山顺德区低保办理材料
- 环球热点评!盛德鑫泰:部分已经投产,剩余的正在完善调试
- 太原五一景区游玩路线推荐(市内+自驾) 当前快看
- 也门踩踏至少85死322伤!有人未经批准分发现金,目击者:电线爆炸引发恐慌 世界新动态
- 当前快播:护航百年校庆 彰显央企担当
- 上交所对*ST紫晶、*ST泽达实施重大违法强制退市_独家
- 《灌篮高手》上映2天破2.1亿票房,专业影评人称“除了情怀、可聊的还有更多”
- 实木复合门一般价格_实木复合门的价格_焦点精选
- 人民日报仲音:以学铸魂,站稳人民立场
- 观天下!稳大宗消费、防电信诈骗……工信部出招!
- 环球快讯:综艺股份2022年营收3.75亿董事长昝圣达薪酬70.42万
- 搜狗今日新词_搜狗今日新词
- 天天观速讯丨excel注册表数据库损坏 注册表数据库损坏
- 速讯:座椅屋顶操场边,北京首所碳中和试点校处处藏“玄机”
- 8亿元打了水漂?高拉特退役将助力巴西足球发展,与国足彻底无缘 天天热闻
- 顾城远和近_关于顾城远和近的介绍
- 【全球聚看点】国电电力(600795.SH)一季度完成发电量按照可比口径同比增长2.52%
- 汪峰的像梦一样自由的含义_汪峰战队4强像梦一样自由mp3下载 每日动态
- 有友食品: 有友食品2023年第一季度报告 全球微速讯
- 天天快资讯丨股票行情快报:信德新材(301349)4月21日主力资金净卖出1738.20万元
- 密室逃脱18全套攻略齿轮_密室逃脱18全套攻略 消息
- 环球快看:股票行情快报:康辰药业(603590)4月21日主力资金净卖出529.42万元
- 天融信股东户数下降5.62%,户均持股38.17万元
- 数字经济占GDP“半壁江山” 福州推动数字技术赋能实体经济
x
广告
x
广告