1. NewTimer

package main

import (
"time"
"fmt"
) func main() {
/*
1. func NewTimer(d Duration) *Timer
创建一个计时器,d时间以后触发
*/ timer := time.NewTimer(3 *time.Second) //3秒
fmt.Printf("%T\n",timer) //*time.Timer
fmt.Println(time.Now()) //2019-08-15 11:32:17.065452 +0800 CST m=+0.000614404 //此处等待channel中的数值,会阻塞3秒
ch2 := timer.C
//3秒之后的时间
fmt.Println(<-ch2 ) //2019-08-15 11:32:20.068101 +0800 CST m=+3.003327715 //新建一个计时器
timer2 := time.NewTimer(5*time.Second)
//开始goroutine,来处理触发后的事件
go func() {
<- timer2.C
//5秒之后打印下面的
fmt.Println("Timer 2 结束了。。。开始。。。。")
}() //取消计时器
time.Sleep(3*time.Second)
flag := timer2.Stop()
if flag{
fmt.Println("Timer 2 停止了。。。")
}
}

2. After

package main

import (
"time"
"fmt"
) func main() {
/*
2. func After(d Duration) <-chan Time
返回一个通道:chan,存储的是d时间间隔之后的当前时间 相当于:return NewTimer(d).C
*/
ch := time.After(3 *time.Second)
fmt.Printf("%T\n",ch) //<-chan time.Time
fmt.Println(time.Now()) //2019-08-15 11:43:33.941039 +0800 CST m=+0.000537462 time2 := <-ch
fmt.Println(time2) //2019-08-15 11:43:36.945775 +0800 CST m=+3.005338577
}

  

Go计时器的更多相关文章

  1. android 两种实现计时器时分秒的实现,把时间放在你的手中~

    可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器.这个东西其实实现起来非常简单. 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲 ...

  2. TCP四种计时器

    TCP共使用以下四种计时器,即重传计时器.坚持计时器.保活计时器和时间等待计时器 .这几个计时器的主要特点如下:      1.重传计时器      当TCP发送报文段时,就创建该特定报文段的重传计时 ...

  3. C# - 计时器Timer

    System.Timers.Timer 服务器计时器,允许指定在应用程序中引发事件的重复时间间隔. using System.Timers: // 在应用程序中生成定期事件 public class ...

  4. JavaScript学习笔记5 之 计时器 & scroll、offset、client系列属性 & 图片无缝滚动

    一.计时器 setInterval ( 函数/名称 , 毫秒数 )表示每经过一定的毫秒后,执行一次相应的函数(重复) setTimeout ( 函数/名称 , 毫秒数 ) 表示经过一定的毫秒后,只执行 ...

  5. VBA中使用计时器的两种方法

    '================================ ' VBA采用Application.OnTime实现计时器 ' ' http://www.cnhup.com '========= ...

  6. js 短信验证码 计时器

    $(function(){ getMsg(); //页面加载完成之后执行 }) function getMsg(){ //注册按钮的点击事件 $("#smsBtn").on(&qu ...

  7. 【效率】专为Win7系统设计的极简番茄计时器 - MiniPomodoro (附源码)

    时光飞逝,一转眼坚持使用番茄工作法已经快3年了!能坚持这么长时间,主要还是得益于它的简单.但是令人纠结的是,这么长时间以来,换了7款不同的番茄计时器,仍然没有找到非常满意的: ■ 机械的噪音太大,会妨 ...

  8. 计时器StopWatch示例

    计时器 StopWatch stwatch = new StopWatch(getClass().getSimpleName()); try{ stwatch.start(joinPoint.getS ...

  9. SharePoint 2013 图文开发系列之计时器任务

    SharePoint的计时器任务,又称TimerJob,由服务里的Timer服务执行,在管理中心管理,是一个类似于Windows任务计划的功能,方便定时执行一些需要的功能,以免影响服务器性能. 在Sh ...

  10. DIY一个高大上带提醒的计时器,简单实用,你还在等什么

    小编心语:锵锵锵!小编我又来了!昨天发了一篇比较实用的<Python聊天室>,鉴于反响还不错,SO ,小编也想给大家多分享点有用的干货,让大家边学边用.好了,闲话不多说,今天要给各位看官们 ...

随机推荐

  1. 小I选宾馆

    小 I 选宾馆 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小 I 去天津玩啦,一路上,他跟他的同学发生了许多有趣的 ...

  2. PP: Think globally, act locally: A deep neural network approach to high-dimensional time series forecasting

    Problem: high-dimensional time series forecasting ?? what is "high-dimensional" time serie ...

  3. jquery 清除内容

    jQuery empty() 方法删除被选元素的子元素. $("#div1").empty(); 清空文本框的值 $("#password").val(&quo ...

  4. python求极值点(波峰波谷)

    python求极值点主要用到scipy库. 1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit import pandas as pd import matplotli ...

  5. Base64编码和其在图片的传输的应用

    Base64 [原文链接] 目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一.做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进 ...

  6. JDK8-》 ⽅法引⽤与构造函数引⽤

    以前⽅法调⽤ 对象.⽅法名 或者 类名.⽅法名 jdk1.8提供了另外⼀种调⽤⽅式 ::   说明:⽅法引⽤是⼀种更简洁易懂的lambda表达式,操作符是双冒号::,⽤来直接访问类或者实例 已经存在的 ...

  7. python接口自动化之发送get(三)

    1.安装requests requests是python的第三方库,需要进行安装.安装之前最好先关闭fiddler cmd(win+R快捷键)输入:pip install requests 其他命令: ...

  8. 洛谷P1177 【模板】快速排序

    https://www.luogu.org/problem/P1177 #include<bits/stdc++.h> using namespace std; int n; multis ...

  9. js获取自定义data属性

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. pve proxmox 常见问题,perl warning

    pve命令,如下报错 perl: warning: Setting locale failed. perl: warning: Please check that your locale settin ...