Go语言中关闭带缓冲区的频道实例分析
作者:不是JS 时间:2024-02-20 07:55:16
本文实例分析了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语言程序设计有所帮助。
标签:Go语言,关闭,频道
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python web.py开发httpserver解决跨域问题实例解析
2021-02-21 15:44:35
观点 2009 年,IE6 走好
2009-01-04 16:46:00
![](https://img.aspxhome.com/file/UploadPic/20091/4/1230920848-89s.png)
深入理解JS中的substr和substring
2024-04-16 10:29:24
HTML编写小经验
2011-06-14 09:43:14
关注各网站的布局调整
2008-09-23 18:14:00
Tensorflow分类器项目自定义数据读入的实现
2023-06-21 20:21:53
![](https://img.aspxhome.com/file/2023/4/59144_0s.png)
python使用wxPython打开并播放wav文件的方法
2023-08-23 10:30:58
pytorch 实现模型不同层设置不同的学习率方式
2023-11-20 00:29:25
python脚本定时发送邮件
2023-08-07 16:36:02
![](https://img.aspxhome.com/file/2023/0/59290_0s.jpg)
TF-IDF算法解析与Python实现方法详解
2021-12-28 02:38:47
![](https://img.aspxhome.com/file/2023/2/82962_0s.png)
SWFObject1.5: 基于Javascript的Flash媒体版本检测与嵌入模块
2009-08-06 18:02:00
TensorFlow如何指定GPU训练模型
2022-05-31 10:03:21
![](https://img.aspxhome.com/file/2023/8/82818_0s.png)
Python 可视化matplotlib模块基础知识
2021-09-09 05:17:45
![](https://img.aspxhome.com/file/2023/1/117351_0s.png)
如何获取当前 select 元素的值
2010-03-29 13:07:00
python3 tkinter实现添加图片和文本
2022-08-07 04:28:17
![](https://img.aspxhome.com/file/2023/3/86133_0s.jpg)
oracle 服务启动,关闭脚本(windows系统下)
2024-01-21 08:49:18
Javascript的匿名函数
2008-05-07 13:33:00
SQL执行步骤的具体分析
2024-01-17 15:47:54
Vue Render函数原理及代码实例解析
2023-07-02 16:34:38
python3+selenium实现qq邮箱登陆并发送邮件功能
2023-02-04 17:54:23