本文摘自php中文网,作者藏色散人,侵删。
下面由golang教程栏目给大家介绍关于golang select典型用法,希望对需要的朋友有所帮助!
code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package main
import (
"fmt"
"time"
)
func chanTest(ch chan int) {
for {
fmt.Println(value, ok, time.Now()) if ok == false {
fmt.Println( "chan已经关闭" , time.Now())
return
} default :
fmt.Println( "chan 空了" , time.Now()) time.Sleep(time.Second * 5)
}
}
}
func main() {
var ch = make(chan int, 100) go chanTest(ch)
ch <- 1
ch <- 2
time.Sleep(time.Second * 2)
ch <- 3
ch <- 4
time.Sleep(time.Second) close(ch) for { time.Sleep(time.Second)
}
}
|
需要注意的是,select的 defalut会丢弃数据,chan已满的情况,入chan的数据会被丢弃
以上就是关于golang select典型用法的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
数据结构6:栈、队列、堆
golang web框架有哪些?
【gocn译文视点】何时使用 rust, 何时使用 go
手撸golang go与微服务 chatserver之2
go-carbon 1.3.1 版本发布,新增 diffforhumans() 方法和多语言支持
golang如何清空map
在vscode中使用 gopls
分享golang的一个丑陋实现
"b = &boy{}" vs "*b = boy{}" 谁不讲武德?golang 逃逸分析入门
使用viper读取nacos配置(开源)
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » 关于golang select典型用法