go的数据类型-其他数据类型-channel(二) 要闻速递

时间:2023-04-22 08:43:00 来源: 腾讯云


(资料图片仅供参考)

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之间的通信和同步,从而使程序变得简单和高效。

标签:

精彩推送

环球观速讯丨潘濬:刘备帐下无名之辈,关羽将他当废柴,孙权却把他用成了王炸

潘濬:刘备帐下无名之辈,关羽将他当废柴,孙权却把他用成了王炸,读通鉴,知通鉴,用通鉴。今天陶陶继续为

来源:2023.04.20

贵州名家说达利⑤|赵竹:和达利的约会不容错过-今日要闻

今年是中国和西班牙两国建交50周年,由西班牙大使馆、达利基金会、中铁地产集团贵州公司和贵州省对外文化交

来源:2023.04.20

速讯:36集权谋古装剧来袭,陈晓携四大女神,王劲松助力,或再创收视奇迹

36集权谋古装剧来袭,陈晓携四大女神,王劲松助力,或再创收视奇迹

来源:2023.04.20

武汉烟草物流送货服务提质开新篇

围绕全省系统“高质量发展争先进位年”工作主线,武汉烟草物流中心以“知音物流送货服务”为活动主题,...

来源:2023.04.20

cf新usp射速如何加快 cf新usp怎么快速射击_天天快报

cf新usp射速如何加快,不知道的朋友可以来看一下,具体步骤如下!首先看到新旧USP伤害的对比,明显可以看到

来源:2023.04.20

浙江厂房火灾失联者亲属发声:接到警方电话,家属已赶去做DNA鉴定

浙江武义县厂房火灾失联者亲属发声:接到警方电话,家属赶到武义做DNA鉴定

来源:2023.04.20

焦点速读:敦化农商行:倾力打造老百姓家门口贴心“小银行”

敦化农商行:倾力打造老百姓家门口贴心“小银行”,农商行,王春香,小银行,服务点,金融

来源:2023.04.20

世界热议:内乡县赤眉镇卫生院:组织召开消防安全大检查大整治大排查工作推进会

河南经济报记者刘学中通讯员张超为进一步提高职工的安全意识,预防火灾隐患,创造一个安全稳定的医疗环境,

来源:2023.04.20

世界今日讯!天津居住证补领需要什么材料?

➤➤天津居住证补领需要什么材料?办理材料:1 《居民户口簿》或居民身份证2 合法居所证明包括(1)居住在自

来源:2023.04.20

新闻快讯

X 关闭

X 关闭

新闻快讯