Golang的time.NewTimer單次定時器使用案例


           Golang的time.NewTimer單次定時器使用案例

                                 作者:尹正傑

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

 

 

  Timer是一個定時器。代表未來的一個單一事件,你可以告訴timer你要等待多長時間。

 

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

package main

import (
    "fmt"
    "time"
)

func main() {

    //設置定時器為3秒
    timer := time.NewTimer(3 * time.Second)
    fmt.Println("當前時間為:", time.Now())

    t := <-timer.C //從定時器拿數據
    fmt.Println("當前時間為:", t)
}

 

二.Sleep函數(阻塞程序運行)

package main

import (
    "fmt"
    "time"
)

func main() {

    fmt.Println("當前時間為:", time.Now())

    time.Sleep(3 * time.Second)

    fmt.Println("當前時間為:", time.Now())
}

 

三.重置定時器時間

package main

import (
    "fmt"
    "time"
)

func main() {

    timer := time.NewTimer(100 * time.Second)

    go func() {
        fmt.Println("當前時間為:", time.Now())

        t := <-timer.C

        fmt.Println("當前時間為:", t)
    }()

    //重置定時器時間
    timer.Reset(3 * time.Second)

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

}

 

四.停止計時器

package main

import (
    "fmt"
    "time"
)

func main() {

    timer := time.NewTimer(5 * time.Second)

    go func() {
        fmt.Println("當前時間為:", time.Now())

        t := <-timer.C

        fmt.Println("當前時間為:", t)
    }()

    //停止計時器
    timer.Stop()

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

}

 

五.After函數實現延遲功能

package main

import (
    "fmt"
    "time"
)

func main() {

    fmt.Println("當前時間為:", time.Now())

    //阻塞2s后產生一個事件,往channel寫內容
    <-time.After(3 * time.Second)

    fmt.Println("當前時間為:", time.Now())

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

 

六.AfterFunc函數

package main

import (
    "fmt"
    "time"
)

func main() {

    fmt.Println("當前時間為:", time.Now())

    //延遲5s后調用函數
    time.AfterFunc(time.Second*5, func() {
        fmt.Println("當前時間為:", time.Now())
        fmt.Println("In AfterFunc ...")
    })

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

 


免責聲明!

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



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