好好爱自己!

go的select 只会执行一个case,就会退出select 块

 

 

 

 

 package main
 
 import (
   "fmt"
   "time"
 )
 
 func goRoutineA(a chan int) {
   a<-1
 }
 
 func main() {
     ch := make(chan int)
     go goRoutineA(ch)
   time.Sleep(time.Second*1)
   select{
     case d := <- ch:
     fmt.Println(d)
     default:
     fmt.Println("aaa")
   }
   fmt.Println("will exit..");
 }

  当注释掉 15行的   time.Sleep(time.Second*1 )时, 则会输出 “aaa”.

 

因为此时, ch这个channel还没有就绪!!

 

posted @ 2020-11-17 10:57  立志做一个好的程序员  阅读(639)  评论(0编辑  收藏  举报

不断学习创作,与自己快乐相处