本文摘自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典型用法的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
ctx.request().body only fetch once
反射三定律
用 go 搭建 kubernetes operators
golang判断文件是否能写入的方法
golang如何打包在linux上部署
go入门-1 变量
我为何从php 加入到 go 的潮流
跨境电商平台为何抛弃c#转投go的怀抱
golang中mysql建立连接超时时间timeout
go - 基于 gorm 获取当前请求所执行的 sql 信息
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » 关于golang select典型用法