// code_048_Ticker project main.go
package main
import (
"fmt"
"time"
)
//Ticker是一个定时触发的计时器,
//它会以一个间隔(interval)往channel发送一个事件(当前时间),
//而channel的接收者可以以固定的时间间隔从channel中读取事件。
func main() {
////创建定时器,每隔1秒后,定时器就会给channel发送一个事件(当前时间)
ticker := time.NewTicker(time.Second * 1)
i := 0
go func() {
for { //循环
<-ticker.C
i++
fmt.Println("i =", i)
if i == 5 {
ticker.Stop()
}
}
}()
//死循环,特地不让main goroutine结束
for {
}
}
子协程阻塞在下面这个位置:
<-ticker.C
#1