go语言示例-Timer计时器的用法
计时器用来定时执行任务,分享一段代码:
package main
import "time"
import "fmt"
func main() {
//新建计时器,两秒以后触发,go触发计时器的方法比较特别,就是在计时器的channel中发送值
timer1 := time.NewTimer(time.Second * )
//此处在等待channel中的信号,执行此段代码时会阻塞两秒
<-timer1.C
fmt.Println("Timer 1 expired")
//新建计时器,一秒后触发
timer2 := time.NewTimer(time.Second)
//新开启一个线程来处理触发后的事件
go func() {
//等触发时的信号
<-timer2.C
fmt.Println("Timer 2 expired")
}()
//由于上面的等待信号是在新线程中,所以代码会继续往下执行,停掉计时器
stop2 := timer2.Stop()
if stop2 {
fmt.Println("Timer 2 stopped")
}
}
代码解读见注释。
最终输出结果为:
Timer 1 expired
Timer 2 stopped
因为Timer 2的处理线程在等到信号前已经被停止掉了,所以会打印出Timer 2 stopped而不是Timer 2 expired
go语言示例-Timer计时器的用法的更多相关文章
- C#中timer类的用法
		C#中timer类的用法 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类 ... 
- Nonove js timer 计时器
		<html> <head> <title> Nonove js timer 计时器 </title> </head> <body> ... 
- 各种开发语言示例调用HTTP接口(示例中默认HTTP接口编码为gb2312)
		asp示例: function getHTTPPage(strurl,data) on error resume next set http = Server.CreateObject(&qu ... 
- C 语言 字符串命令 strstr()的用法 实现将原字符串以分割串分割输出
		C 语言 字符串命令 strstr()的用法 实现将原字符串以分割串分割输出 strstr() 命令是在原字符串中查找指定的字符串第一次出现的地址,用这个特性可以实现字符的分割,判断是否包涵等功能: ... 
- go语言基础之range的用法
		一.range的用法 示例1: 传统用法 package main //必须有一个main包 import "fmt" func main() { str := "abc ... 
- Flask - 模板语言jinja2 和render_template高级用法
		目录 Flask - 模板语言jinja2 和render_template高级用法 一. 字典传递至前端 二. 列表传入前端Jinja2 模板的操作: 三. 大字典传入前端 Jinja2 模板 四. ... 
- java中计时器的用法Timer和TimerTask的用法__java中利用Timer与TImerTask 计时器间隔执行任务
		经常我们都会有这样的需求,要固定的每隔一段时间执行某一个任务.比如: 我们做一个缓存来减少与数据库的交互,而为了使缓存与数据库中的数据尽量达到同步,需要每个固定的一段时间去数据库中的数 ... 
- Java计时器Timer和TimerTask用法
		package com.sy.game.test; import java.util.Timer; import java.util.TimerTask; public class TimeTask ... 
- System.Threading.Timer 定时器的用法
		System.Threading.Timer 是C# 中的一个定时器,可以定时(不断循环)执行一个任务.它是在线程上执行的,具有很好的安全性.为此 .Net Framework 提供了5个重载的构造 ... 
随机推荐
- php添加环境变量
			在php的安装目录中添加,如/usr/php-5.6.16添加env.php文件,在文件中设置环境变量: 如:<?php$_SERVER['ENV'] = 'production'; 再到配置文 ... 
- javascript代码复用模式(二)
			前面说到,javascript的代码复用模式,可分为类式继承和非类式继承(现代继承).这篇就继续类式继承. 类式继承模式-借用构造函数 使用借用构造函数的方法,可以从子构造函数得到父构造函数传任意数量 ... 
- javascript设计模式-享元模式
			享元模式采用一个共享来有效的支持大量细小粒度的对象,避免大量有相同内容的类的开销(如内存耗费),共享一个元类. 应用场景:页面存在大量的资源密集型对象:他们具备一些共性,可以分离出公共操作的数据. 一 ... 
- 不安装Oracle客户端使用PL/SQL连接服务器端Oracle
			从10G开始,Oracle 提供了一个较为轻量级的客户包,叫做Instant Client Package. 将它安装好后,就不用再安装庞大的Oracle客户端,可以直接通过使用PL/SQL连接服务器 ... 
- 解决服务器复制中SID冲突问题
			解决服务器复制中SID冲突问题 如果你有多部的主机需要安装,最快的方法是什么?想必就是用像GHOST之类的软件来进行硬盘的复制.当然,如果是安装在虚拟机之中,则需要复制虚拟的硬盘档案即可,以微软的VP ... 
- Leetcode028. Implement strStr()
			class Solution { public: int strStr(string haystack, string needle) { ; //needle empty ; //haystack ... 
- libpcap报文解析: ipv4、ipv6(待优化)
			#include <string.h> #include <stdlib.h> #include <pcap.h> #include <netinet/in. ... 
- git gc
			git gc 有时候当你运行一些git命令(比如git pull)的时候,会有如下提示: 1 2 Auto packing the repository for optimum performance ... 
- leetcode  6
			题目描述: 该开始就输在了理解题意上.. 没搞懂zigzag是什么意思. 查了一些解释终于明白要干什么了. 将一个字符串按照Z字形排列(侧着看):再把结果按行输出. 刚开始的想法是讲字符串按照 ... 
- Solaris从安装光盘安装软件
			系统安装完成后默认没有安装GCC 挂载系统盘后,所安装的软件就在/cdrom/sol-10-811-x86/Solaris_10/Product文件夹下可以查看下关于GCC的软件包 #ls -l | ... 
