package main
import "fmt"
func main() {
// 整形的并行管道
ch := make(chan int)
// 开启go,向管道发数据
go func() {
for i := 1; i <= 5; i++ {
ch <- i // 向通道发送数据
}
close(ch) // 关闭通道(遍历完所有的数据也就是把所有的数据发送到管道内后,关闭管道)
}()
//为什么go runc(){}()
/*段代码中的 go func() 匿名函数是用来并发执行的。通过使用 go 关键字,该匿名函数将会在一个单独的 goroutine 中运行,不会阻塞主 goroutine 的执行。*/
// 从管道接收数据
for num := range ch {
fmt.Println(num) // 输出接收到的数据
}
}
go 双向的并行管道
最新推荐文章于 2024-08-23 13:40:49 发布