zoukankan      html  css  js  c++  java
  • 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")
    }
    
  • 相关阅读:
    将本地文件夹添加到Git仓库
    flex调用Webservice(一)
    经典的sql
    打印相关
    reporting services订阅
    关于TabIndex
    试题(一)
    试试用手机
    2010.07.13_19:30
    基础知识
  • 原文地址:https://www.cnblogs.com/zhepama/p/3024302.html
Copyright © 2011-2022 走看看