golang 中select的三种用法

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

你可能感兴趣的:(go)