Go语言自学系列 | golang并发编程之channel的遍历
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言自学系列 | golang并发编程之channel的遍历相关的知识,希望对你有一定的参考价值。
视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,请移步至知乎网站,谢谢支持!
附上汇总贴:Go语言自学系列 | 汇总 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/484035621
方法1 for循环+if判断
package main
import (
"fmt"
)
func main()
c := make(chan int)
go func()
for i := 0; i < 10; i++
c <- i
close(c)
()
for
if data, ok := <-c; ok
fmt.Printf("data: %v\\n", data)
else
break
运行结果
[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
data: 0
data: 1
data: 2
data: 3
data: 4
data: 5
data: 6
data: 7
data: 8
data: 9
方法2 for range
package main
import (
"fmt"
)
func main()
c := make(chan int)
go func()
for i := 0; i < 10; i++
c <- i
close(c)
()
for v := range c
fmt.Printf("v: %v\\n", v)
运行结果
[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
v: 0
v: 1
v: 2
v: 3
v: 4
v: 5
v: 6
v: 7
v: 8
v: 9
注意:如果通道关闭,读多写少,没有了就是默认值,例如,int就是0,如果没有关闭就会死锁。
以上是关于Go语言自学系列 | golang并发编程之channel的遍历的主要内容,如果未能解决你的问题,请参考以下文章
Go语言自学系列 | golang并发编程之runtime包
Go语言自学系列 | golang并发编程之WaitGroup实现同步