标签:printer 3.12 打印 chan 并发 Go main 通道
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。