golang的select
生活随笔
收集整理的這篇文章主要介紹了
golang的select
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ?select 是 Go 中的一個控制結構,類似于用于通信的 switch 語句。每個 case 必須是一個通信操作,要么是發送要么是接收(菜鳥教程的解析),學過C語言應該對switch有所了解,下面看一個實例。
package mainimport ("fmt""time" )func Chann(ch, sh chan int, stopCh chan bool) {for j := 0; j < 5; j++ {if j%2 == 0{ch <- j}else{sh <- j}time.Sleep(time.Second)}stopCh <- true }func main() {ch := make(chan int)sh := make(chan int)stopCh := make(chan bool)go Chann(ch,sh, stopCh)for {select {case c := <-ch:fmt.Println("Recvice ch:", c)case s := <-sh:fmt.Println("Receive sh:", s)case _ = <-stopCh:goto end}} end:fmt.Println("end") }? ? 運行:Recvice ch:0
? ? ? ? ? ? ? ?Recvice ch:1
? ? ? ? ? ? ? ?Recvice ch:2
? ? ? ? ? ? ? ?Recvice ch:3
? ? ? ? ? ? ? ?Recvice ch:4
? ?有一個協程在在往chan寫數據,select里面讀取數據。
?
總結
以上是生活随笔為你收集整理的golang的select的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ stack
- 下一篇: golang的WaitGroup