我就廢話不多說了,大家還是直接看**吧~
func main()
func senddatato(a chan string)
}//在一定時間內接收不到a的資料則超時
func getachan(timeout time.duration, a chan string)
}補充:golang的定時器newtimer、newticker使用
廢話不多說,直接看**
package main
import (
"fmt"
"sync"
"time")
/***ticker只要定義完成,從此刻開始計時,不需要任何其他的操作,每隔固定時間都會觸發。
*timer定時器,是到固定時間後會執行一次
*如果timer定時器要每隔間隔的時間執行,實現ticker的效果,使用 func (t *timer) reset(d duration) bool
*/func main() {
var wg sync.waitgroup
wg.add(2)
//newtimer 建立乙個 timer,它會在最少過去時間段 d 後到期,向其自身的 c 字段傳送當時的時間
timer1 := time.newtimer(2 * t程式設計客棧ime.second)
//newticker 返回乙個新的 ticker,該 ticker 包含乙個通道字段,並會每隔時間段 d 就向該通道傳送當時的時間。它會調
//整時間間隔或者丟棄 tick 資訊以適應反應慢的接收者。如果d <= 0會觸發panic。關閉該 ticker 可
//以釋放相關資源。
ticker1 := time.newticker(2 * time.second)
go func(t *time.ticker) {
defer wg.done()
for {
執行結果:
get ticker1 2018-09-07 22:44:29
get okmcvpmxetimer 2018-09-07 22:44:29
額外說明:
time.newticker定時觸發執行任務,當下一次執行到來而當前任務還沒有執行結束時,會等待當前任務執行完畢後再執行下一次任務。查閱go官網的文件和經過**驗證。
time.newtimer和reset()函式實現定時觸發,reset()函式可能失敗,經測試。
本文標題: golang定時器和超時的使用詳解
本文位址: /jiaoben/golang/370672.html
golang定時器實現
golang定時器,需求是能夠在指定時間後停止。或某種條件出發停止。好,下面上貨。package main import context fmt sync time func main func stoptheworld func goclock for func goclock2 執行結果 123...
Golang 定時器timer和ticker
兩種型別的定時器 ticker和timer。兩者有什麼區別呢?請看如下 package main import fmt time func main output timeout timeout timeout 解析 ticker只要定義完成,從此刻開始計時,不需要任何其他的操作,每隔固定時間都會觸...
golang中的定時器
type timer struct乙個定時器,代表未來的乙個單一事件,你可以告訴timer你要等待多長時間,它提供乙個channel,在將來的那個時間channel提供了乙個時間值 time.newtimer時間到了,只響應一次 func main time.after 2 time.second ...