GO select
Go SELECT
2023-09-27 14:25:20 时间
示例
package main import "fmt" func main() { ch := make(chan int, 1) for i := 0; i < 10; i++ { select { case x := <-ch: fmt.Println(x) case ch <- i: } } }
分析:
第一次:i=0; ch 是空的, x:=<-ch 无法执行,执行ch<-0;
第二次: i=1; ch 长度为1, ch<-1 无法执行;执行 x:=ch, 打印0;ch变为空了
第三次:i=2; ch 是空的, x:=<-ch 无法执行,执行ch<-2;
执行:
0
2
4
6
8
相关文章
- Go GOROOT 与 GOPATH 介绍
- 为什么在Go中我们需要使用Mock测试(附源码)
- 《GO并发编程实战》—— Concurrent Map
- Go: reflect
- Go语言学习:编译成windows和linux上可执行文件
- go vendor目录
- Go-MySQL-Driver,让Go语言拥抱MySQL
- Go常用设计模式(下)
- Go整合Logrus实现日志打印
- go 常见异常
- go 工具链目前[不支持编译 windows 下的动态链接库]解决方案
- Javascript-history.go()和history.back()的用法和区别
- Go基础系列:为select设置超时时间
- [转]Go语言string,int,int64 ,float之间类型转换方法
- 【Go语言入门教程】WaitGroup 实现并发等待
- go的环境变量配置
- Go-MySQL-Driver:一个Go语言的轻量级极速的mysql驱动