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满了}
 
  

你可能感兴趣的:(golang 中select的三种用法)