本文摘自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典型用法的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
golang 架构设计原则 合成复用原则
go语言学习(五):通道的用法
protoc go插件编写之三 (自定义选项)
leetcode1047 删除字符串中的所有相邻重复项 golang
简介
使用 pprof 进行 golang 程序内存分析
golang 和 php 哪个性能更强?
vim--golang开发配置
golang无法解析json怎么办?
golang会代替java吗?
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » 关于golang select典型用法