博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Go] golang的select多路选择功能
阅读量:6878 次
发布时间:2019-06-26

本文共 490 字,大约阅读时间需要 1 分钟。

基于select的多路复用:

1.解决如果一个channel中没有事件发过来,程序会立即阻塞,无法接收到第二个channel中的事件
2.一般每一个case都代表一个通信操作,多个case会选一个能执行的
3.default会默认执行,因此可以作为轮询channel来用

package mainimport (	"fmt")func main() {	//定义一个缓冲通道,大小是1	ch := make(chan int, 1)	for i := 0; i < 10; i++ {		//select多路复用		//1.第一个case会阻塞,第二个case执行0发送到channel		//2.第一个case会执行打印channel中的值,第二个case会阻塞		//3.第一个阻塞,第二个执行2会发送到channel 交叉执行下去		select {		case x := <-ch:			fmt.Println(x)		case ch <- i:		}	}}

 

  

转载于:https://www.cnblogs.com/taoshihan/p/10414558.html

你可能感兴趣的文章
不用加减乘除实现加法
查看>>
Android SD卡 文件或目录拷贝、复制、粘贴
查看>>
git命令与github使用(转主要看向远程仓库推内容)
查看>>
JAVA生成四位数的验证码
查看>>
讯飞语音错误码大全
查看>>
编译器错误消息: CS0433: The type 'global_asax' exists in both 'App_global.asax
查看>>
原生ajax显示php后台内容
查看>>
Android 富文本装饰器Spannable
查看>>
sync.Map源码分析
查看>>
error: invalid storage class for function
查看>>
seci-log 1.08 发布 增加snmp trap v2c和v3的收集
查看>>
jquery通过url传递 和 接收 参数
查看>>
禁用火狐14以后plugin进程
查看>>
linux增加swap分区
查看>>
Android软键盘的显示与隐藏
查看>>
ThreadPool 线程池
查看>>
AWK 文件处理计数
查看>>
我的友情链接
查看>>
AI技术说:人工智能相关概念与发展简史
查看>>
eclipse启动失败
查看>>