golang 中select的三种用法
1.超时处理
select {
case str := <- resultChan:
fmt.Println("receive str", str)
case <- time.After(time.Second * 5):
fmt.Println("timeout!!")
}
2. 退出
select {
case <- quitChan:
cleanUp()
return
default:
}
3.判断channel是否阻塞
var ch chan int = make(chan int, 5)select { case ch <- data: fmt.Println("add success") default: //channel满了}