詳解Golang time包中的結(jié)構(gòu)體time.Ticker
time.Ticker
time.Ticker 會(huì)按照一個(gè)指定的時(shí)間間隔周期性地往一個(gè) channel 中發(fā)送一個(gè) time.Time 類型的數(shù)據(jù),channel的 接收者可以以這個(gè)固定的時(shí)間間隔從 channel 中讀取這個(gè)數(shù)據(jù),常用于實(shí)現(xiàn)定時(shí)相關(guān)的功能。結(jié)構(gòu)體定義和對(duì)應(yīng)的方法如下:
type Ticker struct { C <-chan Time // The channel on which the ticks are delivered. r runtimeTimer }
有兩個(gè)方法:
- func (t *Ticker) Reset(d Duration),停止計(jì)時(shí)器并將其周期重置為指定的時(shí)間間隔。
- func (t *Ticker) Stop(),關(guān)閉計(jì)時(shí)器,調(diào)用此方法之后,將不再發(fā)送 tick。
使用示例
可以使用 time.NewTicker 函數(shù)創(chuàng)建一個(gè) Ticker 實(shí)例,簡(jiǎn)單使用示例如下:
package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(time.Second) // 每隔1s進(jìn)行一次打印 defer ticker.Stop() count := 0 for { <-ticker.C fmt.Println("Tick") count++ if count > 2 { ticker.Reset(2 * time.Second) } if count > 5 { break } } }
首先創(chuàng)建了一個(gè) time.Ticker 對(duì)象,時(shí)間間隔為1秒,第 3 次之后將時(shí)間間隔改為 2 秒,第 6 次后退出循環(huán)。
到此這篇關(guān)于詳解Golang time包中的結(jié)構(gòu)體time.Ticker的文章就介紹到這了,更多相關(guān)Golang結(jié)構(gòu)體time.Ticker內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Go defer與time.sleep的使用與區(qū)別
- 詳解Golang time包中的time.Duration類型
- 詳解Golang time包中的結(jié)構(gòu)體time.Time
- Go?中?time.After?可能導(dǎo)致的內(nèi)存泄露問(wèn)題解析
- Golang time.Sleep()用法及示例講解
- go?time.Sleep睡眠指定時(shí)間實(shí)例詳解(小時(shí)級(jí)到納秒級(jí))
- 淺談golang 中time.After釋放的問(wèn)題
- 解決Golang time.Parse和time.Format的時(shí)區(qū)問(wèn)題
- go語(yǔ)言time.After()的作用
相關(guān)文章
VSCode安裝go相關(guān)插件失敗的簡(jiǎn)單解決方案
這篇文章主要給大家介紹了關(guān)于VSCode安裝go相關(guān)插件失敗的簡(jiǎn)單解決方案,VSCode是我們開發(fā)go程序的常用工具,最近安裝的時(shí)候遇到了些問(wèn)題,需要的朋友可以參考下2023-07-07深入理解gorm如何和數(shù)據(jù)庫(kù)建立連接
這篇文章主要為大家詳細(xì)介紹了gorm如何和數(shù)據(jù)庫(kù)建立連接,文中的示例代碼講解詳細(xì),對(duì)我們深入了解GO語(yǔ)言有一定的幫助,需要的小伙伴可以參考下2023-11-11go開源項(xiàng)目用戶名密碼驗(yàn)證的邏輯鬼才寫法
這篇文章主要為大家介紹了go開源項(xiàng)目中發(fā)現(xiàn)的一個(gè)邏輯鬼才寫法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07go?defer?return?panic?執(zhí)行順序示例詳解
這篇文章主要介紹了go?defer?return?panic?執(zhí)行順序,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01基于golang channel實(shí)現(xiàn)的輕量級(jí)異步任務(wù)分發(fā)器示例代碼
這篇文章主要給大家介紹了關(guān)于基于golang channel實(shí)現(xiàn)的輕量級(jí)異步任務(wù)分發(fā)器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Go語(yǔ)言對(duì)接微信支付與退款指南(示例詳解)
在互聯(lián)網(wǎng)技術(shù)日益發(fā)展的背景下,Go語(yǔ)言憑借并發(fā)處理能力,在后端開發(fā)中大放異彩,本文詳細(xì)介紹如何使用Go語(yǔ)言對(duì)接微信支付,完成支付和退款功能,包括準(zhǔn)備工作、初始化微信支付客戶端、實(shí)現(xiàn)支付功能,以及處理支付回調(diào)和退款等2024-10-10