func main() {
require:=make(chan int,5)
for i:=0;i<5;i++{
require<-i
}
close(require)
//设置定时器控制读取速率
ti:=time.Tick(time.Duration(1)*time.Second)
//直接range只会读取值,缓冲区无数据会读取默认零值,chan关闭,则退出range
for i:=range require{
<-ti
fmt.Printf("i: %d time: %v
",i,time.Now())
}
}
简单的demo,具体的channel原理可参考其他博客。