标签:cond 任务 应用 data 往里面 用户 pre ack efault
应用场景举例:package main
import "fmt"
import "time"
func main() {
var ch chan int
ch = make(chan int, 10)
ch2 := make(chan int, 10)
go func() {
var i int
for {
ch <- i
time.Sleep(time.Second)
ch2 <- i * i
time.Sleep(time.Second)
i++
}
}()
for {
select {
//这个case如果不能从ch中获取数据,则会立即走下一个
case v := <-ch:
fmt.Println(v)
//这个case如果不能从ch2中获取数据,则会立即走下一个
case v := <-ch2:
fmt.Println(v)
case <-time.After(time.Second):
fmt.Println("get data timeout")
time.Sleep(time.Second)
default:
fmt.Println("===================")
time.Sleep(time.Second)
}
}
}
标签:cond 任务 应用 data 往里面 用户 pre ack efault
原文地址:http://blog.51cto.com/5660061/2348476