package main
import "fmt"
import "time"
func main() {
ticker := time.NewTicker(time.Millisecond * 500)
go func() {
for t := range ticker.C {
fmt.Println("Tick at", t)
}
fmt.Println("ticker stopped")
}()
time.Sleep(time.Second * 5)
ticker.Stop()
time.Sleep(time.Second * 5)
}
我以爲當我打電話給ticker.Stop()時,ticker.C應該告訴goroutine它已經結束,所以for循環應該結束,但它看起來不像那樣,字符串「ticker stopped」從不打印。股票代碼告訴goroutine它是通過它的ticker.C停止的嗎?
從文檔:'停止不關閉channel' – JimB