go語言基礎 select語句

select語句,專門用於通道的使用
select {
case 通道的讀寫
}
哪個case可以執行就執行哪個。
如果有多個case可以執行,隨機選擇一個case執行。
如果沒有case可以執行,有defaute執行defaulte,如果沒有defaute進入阻塞
package main

import (
   "fmt"
   "time"
)

func main() {
   /*
   分支語句:if,switch,select
   select 語句類似於 switch 語句,
      但是select會隨機執行一個可運行的case。
      如果沒有case可運行,它將阻塞,直到有case可運行。
    */

   ch1 := make(chan int)
   ch2 := make(chan int)

   go func() {
      time.Sleep(3*time.Second)
      ch2 <- 200
   }()
   go func() {
      time.Sleep(3*time.Second)
      ch1 <- 100
   }()

   select {
   case num1 := <-ch1:
      fmt.Println("ch1中取數據。。", num1)
   case num2 := <-ch2:
      fmt.Println("ch2中取數據。。", num2)


   }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章