Go语言中关闭带缓冲区的频道实例分析
作者:不是JS 发布时间:2024-02-20 07:55:16
标签:Go语言,关闭,频道
本文实例分析了Go语言中关闭带缓冲区的频道。分享给大家供大家参考。具体分析如下:
Go语言提供了两种频道,带缓冲区和不带缓冲区的。不带缓冲区的频道,发送和接收是同步的,必须接收端接收了消息,发送端才能从发送调用中解脱。带缓冲区的频道,在缓冲区满之前,发送和接收是异步的,发送端的发送操作只保证把消息放入缓冲区。
Go的频道是可以关闭的,关闭频道的目的是让接收端知道不会再有消息从这个频道进入,我们可能会用某个频道的关闭来表示某种状态的终结。
当我们关闭一个带缓冲区的频道时,如果缓冲区中还有消息,接收端是会继续接收完剩余消息呢?还是直接就丢弃剩余消息呢?下面是我做的一个试验代码:
package main
import "fmt"
func main() {
input := make(chan int, 10)
wait := make(chan int)
for i := 0; i < 10; i ++ {
input <- i
}
close(input)
go func() {
for {
if i, ok := <- input; ok {
fmt.Println(i)
} else {
break
}
}
wait <- 1
}()
<-wait
}
希望本文所述对大家的Go语言程序设计有所帮助。
0
投稿
猜你喜欢
- 有时候会用到查询倒数第二条记录 last=HolderChangeHistory.find_by_sql([" &nbs
- 第一步、下载压缩包下载社区版的 MySQL,根据需求下载对应版本,其中有最小安装版本。具体各个版本的区别,可以上网查询,链接MySQL ::
- 当今,有一点可以肯定的是,设计的领域在扩大,这是一个需要设计的世界。拒最新的统计资料显示,中国目前已有正规的设计学院教学机构700多所,并且
- 本文实例讲述了Python实现查找二叉搜索树第k大的节点功能。分享给大家供大家参考,具体如下:题目描述给定一个二叉搜索树,找出其中第k大的节
- 正在看的ORACLE教程是:Oracle 8x监控sysdba角色用户登陆情况。在Oracle 8i版本之前,使用internal
- 杨紫和肖战的《余生请多指教》于3月15日起腾讯视频全网独播,湖南卫视金鹰独播剧场晚8:20播放。对于杨紫的纯剧粉(战长沙入的坑图片),想要用
- 使用if…elif…elif…else 实现switch/case可以使用if…elif…elif..else序列来代替switch/cas
- 一旦被黑客获取到webshell,黑客就知道了你的sqlserver管理员密码,如果sqlserver再没有经过安全设置那么黑客很容易就提权
- “操作入口明确”,就是指产品的任何一个功能都要有明确、合理的入口。“操作入口”,指的是产品内部不同模块之间的转接元素,例如在Web产品中,按
- 所以以 create_time datetime default now() 的形式设置默认值是不可能的。 代替的方案是使用TIMESTAM
- 尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有
- 什么是标签平滑?在PyTorch中如何去使用它?在训练深度学习模型的过程中,过拟合和概率校准(probability calibration
- python 版本 3.x首先安装 PIL由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版
- 本文实例为大家分享了python实现图像拼接的具体代码,供大家参考,具体内容如下1.待拼接的图像2. 基于SIFT特征点和RANSAC方法得
- 对称二叉树的含义非常容易理解,左右子树关于根节点对称,具体来讲,对于一颗对称二叉树的每一颗子树,以穿过根节点的直线为对称轴,左边子树的左节点
- 三遍记忆,让你记住海量素材的准确位置和用途,提高其可用性.这仅仅是一个示意图.在以往的日子里,我做到了只要脑袋里冒出一个想法,立刻就能知道我
- 如下所示:File–>Settings–>Editor–> Color Scheme–>Language Defau
- 列表推导式你有一个list: bag = [1, 2, 3, 4, 5]现在你想让所有元素翻倍,让它看起来是这个样子: [2, 4, 6,
- 作者:Lachlan Hunt概要网络是不断的进化的. 新的和有创意的网站每天都在出现, 从各方面都在冲击着HTML的边界. HTML 4来
- 配置类config_file:from configparser import ConfigParserclass config_file: