没有合适的资源?快使用搜索试试~ 我知道了~
之前的例子创建的都是无缓冲通道。使用无缓冲通道往里面装数据时,装入方将被阻塞,直到另外通道在另一个goroutine中被取出,同时,如果通道中没有放入任何数据,接收方试图从通道中获取数据时,同样也是阻塞。发送和接收的操作是同步完成的。 下面介绍一个并发打印的例子,将goroutine和channel放在一起展示它们的用法; package main import “fmt” func printer(c chan int) { //开始无限循环等待数据 for { //从channel 中获取一个数据
资源推荐
资源详情
资源评论
Go语言并发打印(借助通道实现)语言并发打印(借助通道实现)
之前的例子创建的都是无缓冲通道。使用无缓冲通道往里面装数据时,装入方将被阻塞,直到另外通道在另一个goroutine
中被取出,同时,如果通道中没有放入任何数据,接收方试图从通道中获取数据时,同样也是阻塞。发送和接收的操作是同步
完成的。
下面介绍一个并发打印的例子,将goroutine和channel放在一起展示它们的用法;
package main
import “fmt”
func printer(c chan int) {
//开始无限循环等待数据
for {
//从channel 中获取一个数据
data := <-c
//将0视为数据结束
if data == 0 {
break
}
//打印数据
fmt.Println(data)
}
//通知main已经结束循环(我搞定了)
c <- 0
}
func main() {
//创建一个channel
c := make(chan int)
//并发执行printer,传入channel
go printer(c)
for i := 1; i <= 10; i++ {
//将数据通过channel投送给printer
c <- i
}
//通知并发的printer结束循环(没有数据啦)
c <- 0
//等待printer结束(搞定喊我)
<-c
}
运行输出:
1
资源评论
weixin_38646634
- 粉丝: 4
- 资源: 911
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSCMS登录模块需要的JS文件
- JSP网络购物中心毕业设计(源代码+论文).rar
- 白盒测试报告.docx
- 基于LM5117芯片评估开发板硬件参考设计(原理图+PCB)+中英文数据手册资料.zip
- 照片批量重命名软件(文件批量修改图片文件名)
- app.apk
- 人工智能(AI)是计算机科学的一个分支,旨在开发和应用能够模拟、延伸和扩展人类智能的理论、方法和技术,包括机器人、语言识别、图像
- 嵌入式与物联网开发是当今信息技术领域的两大重要分支,它们相互交织,共同推动着智能化时代的进步 嵌入式开发主要关注在嵌入式操作
- 网络安全,这一看似高深莫测的领域,实则与我们每个人的生活息息相关
- 毕业设计基于深度学习的视觉问答系统源码+文档说明+答辩PPT.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功