Go基础 专题
专题目录
您的位置:go > Go基础 专题 > Go断续器实例
Go断续器实例
作者:--    发布时间:2019-11-20

计时器是当想在未来做一些事情 - tickers是用于定期做一些事情。 这里是一个例行程序,周期性执行直到停止。

代码机使用与计时器的机制类似:发送值到通道。 这里我们将使用通道上的一个范围内来迭代值,这此值每500ms到达。

代码可以像计时器一样停止。当代码停止后,它不会在其通道上接收任何更多的值。我们将在1600ms后停止。

当运行这个程序时,ticker应该在我们停止之前打3次。

所有的示例代码,都放在 f:\worksp\golang 目录下。安装go编程环境请参考:http://www.h3.com/go/go_environment.html

timers.go的完整代码如下所示 -

package main

import "time"
import "fmt"

func main() {

    // tickers use a similar mechanism to timers: a
    // channel that is sent values. here we'll use the
    // `range` builtin on the channel to iterate over
    // the values as they arrive every 500ms.
    ticker := time.newticker(time.millisecond * 500)
    go func() {
        for t := range ticker.c {
            fmt.println("tick at", t)
        }
    }()

    // tickers can be stopped like timers. once a ticker
    // is stopped it won't receive any more values on its
    // channel. we'll stop ours after 1600ms.
    time.sleep(time.millisecond * 1600)
    ticker.stop()
    fmt.println("ticker stopped")
}

执行上面代码,将得到以下输出结果 -

f:\worksp\golang>go run tickers.go
tick at 2017-01-21 14:24:48.8807832 +0800 cst
tick at 2017-01-21 14:24:49.380263 +0800 cst
tick at 2017-01-21 14:24:49.882174 +0800 cst
ticker stopped

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册