Go之路(二十六):定时器
定时器
定时器一般配合Select使用,返回是一个管道
每次取一个值
package main import( "fmt" "time" ) func main() { var a = make(chan int,5) var b = make(chan int,5) go func(){ var i int for { a <- i time.Sleep(time.Second) b <- i*i time.Sleep(time.Second) i++ } }() t := time.NewTicker(time.Second) for{ select{ case v := <- a: fmt.Println(v) case v:= <- b: fmt.Println(v) case <-t.C: time.Sleep(time.Second) fmt.Println("?") } t.Stop() } }
一定要记得Stop否则会发生内存泄漏