go语言学习笔记:channel select
package main
import(
"fmt"
"time"
)
func main() {
tick := time.Tick(1 * time.Second)
select {
case <-time.After(10 * time.Second):
fmt.Println("clock!!!!!")
case <-tick:
fmt.Println("hello")
default:
fmt.Println("default")
}
}
root@namespace:~/zjx/src# ./f
default
它与C语言中的poll和select函数类似。注意它有如下特点:
1. 它不会阻塞在其中一个channel中
2. 它没有先后顺序,当其中多个条件同时满足时,它的执行顺序是随机的。
3. 与poll等一样,如果有一个条件满足它就会执行下去,如果都不满足则执行default分支内容。如果都不满足则会阻塞下去

浙公网安备 33010602011771号