Golang的select最基本用法及应用是什么
导读:今天这篇给大家分享的知识是“Golang的select最基本用法及应用是什么”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“Golang的select最基本用法及应用是什么”文章能帮助大家解决问题。...
今天这篇给大家分享的知识是“Golang的select最基本用法及应用是什么”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“Golang的select最基本用法及应用是什么”文章能帮助大家解决问题。
code
package main
import (
"fmt"
"time"
)
func chanTest(ch chan int) {
for {
//select外层需要循环 select {
case value, ok := -ch:
fmt.Println(value, ok, time.Now()) if ok == false {
fmt.Println("chan已经关闭", time.Now()) //select要自己判断退出,如果是for..range 形式,在读取完了关闭的chanel后,退出循环
return
}
default:
fmt.Println("chan 空了", time.Now()) time.Sleep(time.Second * 5) //分支的处理会阻塞整个select
}
}
}
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最基本用法及应用是什么”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Golang的select最基本用法及应用是什么
本文地址: https://pptw.com/jishu/653198.html
