1 回答

TA貢獻1898條經(jīng)驗 獲得超8個贊
無需使用 3rd 方庫來實現(xiàn)。只需利用 goroutine 的優(yōu)勢并使用包time.Sleep()中可用的 API time,即可獲得相同的結(jié)果。
例子:
go func() {
for true {
fmt.Println("Hello !!")
time.Sleep(1 * time.Second)
}
}()
游樂場:https://play.golang.org/p/IMV_IAt-VQX
使用代碼 #1 的示例
根據(jù) Siddhanta 的建議。這是一個使用 ticker 實現(xiàn)相同結(jié)果的示例(取自ticker 的 go 文檔頁面,根據(jù)您的要求進行了一些修改)。
done := make(chan bool)
ticker := time.NewTicker(1 * time.Second)
go func() {
for {
select {
case <-done:
ticker.Stop()
return
case <-ticker.C:
fmt.Println("Hello !!")
}
}
}()
// wait for 10 seconds
time.Sleep(10 *time.Second)
done <- true
ticker時間信息(執(zhí)行的時間Hello !!)可以從channel中獲取ticker.C。
case t := <-ticker.C:
fmt.Println(t)
游樂場:https://play.golang.org/p/TN2M-AMr39L
使用代碼 #2 的示例
另一個簡化的 ticker 示例,取自https://gobyexample.com/tickers
ticker := time.NewTicker(1 * time.Second)
go func() {
for range ticker.C {
fmt.Println("Hello !!")
}
}()
// wait for 10 seconds
time.Sleep(10 *time.Second)
ticker.Stop()
- 1 回答
- 0 關注
- 111 瀏覽
添加回答
舉報