• golang学习笔记——定时器


    Timer定时器
    • 启动
    package main
     
    import (
        "fmt"
        "time"
    )
     
    func main() {
        <-time.After(2 * time.Second)
        fmt.Println("延时两秒")
    }
     
    func main02() {
        time.Sleep(2 * time.Second)
        fmt.Println("延时两秒")
    }
     
    func main01() {
        //timer 只能执行一次
        timer := time.NewTimer(2 * time.Second)
        <-timer.C
        fmt.Println("延时两秒")
    }
    • 停止
    package main
     
    import (
        "fmt"
        "time"
    )
     
    func main() {
        timer := time.NewTimer(3 * time.Second)
     
        go func() {
             <-timer.C
             fmt.Println("三秒后执行")
        }()
     
        //停止定时器
        timer.Stop()
     
        for {
     
        }
     
    }
    • 重置
    package main
     
     
    import (
        "fmt"
        "time"
    )
     
    func main() {
        timer := time.NewTimer(3 * time.Second)
     
        //重置为1秒钟
        timer.Reset(time.Second)
     
        go func() {
             <-timer.C
             fmt.Println("定时执行")
        }()
     
        for {
     
        }
     
    }
     
    Ticker定时器(循环执行)
    package main
     
    import (
        "fmt"
        "time"
    )
     
    func main() {
        ticker := time.NewTicker(time.Second)
        i := 0
        for {
             i++
             <-ticker.C
             fmt.Println(i)
             if i == 5 {
                     ticker.Stop()
                     break
             }
        }
    }
     
     
  • 相关阅读:
    【BZOJ3110】K大数查询(权值线段树套线段树+标记永久化,整体二分)
    【BZOJ3669】魔法森林(LCT)
    art-template前端高性能模板
    spring新心得
    工作流程
    idea操作
    log4j学习
    对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。
    JUnit4学习
    maven搭建
  • 原文地址:https://www.cnblogs.com/itsuibi/p/14476962.html
Copyright © 2020-2023  润新知