go的数据类型-其他数据类型-channel(二) 观察

来源:腾讯云

2023-04-24 04:28:09


(资料图片仅供参考)

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(二) 观察

以下是一个使用Channel的示例程序,该程序创建了两个Goroutine,并使用Channel在它们之间进行通信和同步。[详细]
2023-04-24

第21次闯进足总杯决赛,曼联官方晒海报:温布利,6月见-世界今亮点

晋级足总杯决赛后,曼联官方发布海报庆祝。足总杯半决赛,曼联通过点球大战淘汰布莱顿,队史第21次闯进足总[详细]
2023-04-24

读书之美丨世界读书日:一半烟火,一半远方

2023年4月23日是世界读书日,春光尚好,正适合打开一本书。[详细]
2023-04-24

盗窃开庭简易流程 即时焦点

一、盗窃开庭简易流程盗窃开庭简易流程如下:1 庭审准备阶段;2 法庭调查阶段;3 举证质证阶段;4 法庭辩论[详细]
2023-04-24

【天天快播报】嘴唇起泡什么原因吃什么药好_嘴唇起泡是什么原因怎么治疗吃什么药

1、嘴里面起泡带白点是口腔溃疡要补充维C嘴唇起泡一起就是很多个聚在一起就是上火了可能是心事或者吃易上火[详细]
2023-04-24

【环球热闻】长途开车总犯困?用它爽一下,瞬间清醒,精神百倍

长途开车总犯困?用它爽一下,瞬间清醒,精神百倍[详细]
2023-04-24

天天观点:轻轻吹是什么意思?

1、形容微风和煦、缓慢吹动的样子。2、微风:释义:轻微的风。3、2、指日趋衰微的风俗。4、读音:wēifēng[详细]
2023-04-24

吴通控股:如有中标重大项目等内容达到信息披露标准,公司将及时予以公告|短讯

吴通控股(300292)04月23日在投资者关系平台上答复了投资者关心的问题。[详细]
2023-04-24

观点:保卫黄河朗诵词的作用是什么_保卫黄河朗诵词

1、朗诵词:我站在黄河之巅,望黄河滚滚,奔向东南。2、金涛澎湃,掀起万丈狂澜,浊流婉转,结成九曲连环。[详细]
2023-04-23

世界最新:4月23日晚间5家公司出现利好消息

4月23日晚间5家上市公司发布重大利好消息,5家公司涉及业绩增长,具体涉及的上市公司如下。1 亚康股份2022[详细]
2023-04-23
版权所有: 北冰洋制冷网 All Rights Reserved
沪ICP备2020036824号-3
联系邮箱:562 66 29@qq.com