• Time包详解二timer和ticket.html


    timer 计时器

    用于在指定的Duration类型时间后调用函数或计算表达式。

    • 如果只是想指定时间之后执行,使用time.Sleep()
    • 使用NewTimer(),可以返回的Timer类型在计时器到期之前,取消该计时器
    • 直到使用<-timer.C发送一个值,该计时器才会过期
    timer1 := time.NewTimer(time.Second * 2)

    ticker 断续器

    按照指定的周期来调用函数或计算表达式。

    • 通常会使用go新开一个线程,否则会

    使用时间控制停止ticker

    	ticker := time.NewTicker(time.Millisecond * 500)
        go func() {
            for t := range ticker.C {
                fmt.Println("Tick at", t)
            }
        }()
    
    	time.Sleep(time.Millisecond * 1500)   //阻塞
        ticker.Stop()     
        fmt.Println("Ticker stopped")
    

    使用channel控制停止ticker

    ticker := time.NewTicker(time.Millisecond * 500)
    	c := make(chan int)
    	go func() {
    		i := 0
    		for t := range ticker.C {
    			fmt.Println("Tick at", t)
    			i++
    			if i == 3 {
    				ticker.Stop()
    				break
    			}
    		}
    		c

    不开新线程..

    func main() {
    	ticker := time.NewTicker(time.Millisecond * 500)
    
    	i := 0
    	for t := range ticker.C {       //无限循环,直到break
    		fmt.Println("Tick at", t)
    		i++
    		if i == 3 {
    			ticker.Stop()
    			break
    		}
    	}
    
    	fmt.Println("Ticker stopped")
    }
    
  • 相关阅读:
    Python面向对象的魔术方法
    Python面向对象基础
    Python异常处理
    Python装饰器实现函数动态类型检查
    Python装饰器
    Python IO
    HTTP协议
    应用层常用协议
    读写分离
    MySQL优化三之MySQL配置
  • 原文地址:https://www.cnblogs.com/zhepama/p/3024302.html
Copyright © 2020-2023  润新知