Golang的time.NewTicker周期性定時器使用案例


        Golang的time.NewTicker周期性定時器使用案例

                                 作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 

 

 

 

  Ticker是一個周期觸發定時的計時器,它會按照一個時間間隔往channel發送系統當前時間,而channel的接收者可以以固定的時間間隔從channel中讀取事件。

 

一.通過NewTicker函數定義定時器

package main

import (
    "fmt"
    "time"
)

func main() {

    //創建一個周期性的定時器
    ticker := time.NewTicker(3 * time.Second)
    fmt.Println("當前時間為:", time.Now())

    go func() {
        for {

            //從定時器中獲取數據
            t := <-ticker.C
            fmt.Println("當前時間為:", t)

        }
    }()

    for {
        time.Sleep(time.Second * 1)
    }
}

 

二.停止定時器

package main

import (
    "fmt"
    "runtime"
    "time"
)

func main() {

    //創建一個周期性的定時器
    ticker := time.NewTicker(3 * time.Second)

    //定義計數器
    count := 1
    fmt.Println("當前時間為:", time.Now(), "count = ", count)

    go func() {
        for {
            //從定時器中獲取數據
            t := <-ticker.C
            count++
            fmt.Println("當前時間為:", t, "count = ", count)
            if count == 10 {
                /**
                如果周期性定時被消費10次后就停止該定時器
                */
                ticker.Stop()
                runtime.Goexit()
            }
        }
    }()

    for {
        time.Sleep(time.Second * 1)
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM