3.12 Go之并发打印(借助通道实现)
作者:互联网
3.12 Go之并发打印(借助通道实现)
使用无缓冲通道实现并发打印数字
示例代码:
package main
import "fmt"
/*
Go之并发打印结果
*/
/* 定义一个打印函数 */
func printer(c chan int) {
// 无限循环等待数据
for {
// 从chan当中接收数据
data := <-c
// 如果接收到的数据为0则退出
if data == 0 {
break
}
// 否则打印数据
fmt.Println(data)
}
// 将0放入通道中
c <- 0
}
/* 在main中进行调用 */
func main() {
// 创建一个通道
c := make(chan int)
// 并发执行printer,传入channel
go printer(c)
// 循环发送值给通道
for i := 1; i < 10; i++ {
// 将数据发送到通道中
c <- i
}
// 结束printer当中的循环
c <- 0
// 匿名接收
<-c
}
标签:printer,3.12,打印,chan,并发,Go,main,通道 来源: https://www.cnblogs.com/JunkingBoy/p/16033303.html