Go语言实现定时器的方法

本文实例讲述了Go语言实现定时器的方法。分享给大家供大家参考。具体实现方法如下:

代码如下:

package main

import (
 "fmt"
 "time"
)

func testTimer1() {
 go func() {
  fmt.Println("test timer1")
 }()

}

func testTimer2() {
 go func() {
  fmt.Println("test timer2")
 }()
}

func timer1() {
 timer1 := time.NewTicker(1 * time.Second)
 for {
  select {
  case <-timer1.C:
   testTimer1()
  }
 }
}

func timer2() {
 timer2 := time.NewTicker(2 * time.Second)
 for {
  select {
  case <-timer2.C:
   testTimer2()
  }
 }
}

func main() {
 go timer1()
 timer2()
}

希望本文所述对大家的Go语言程序设计有所帮助。

(0)

相关推荐

  • go语言通过odbc访问Sql Server数据库的方法

    本文实例讲述了go语言通过odbc访问Sql Server数据库的方法.分享给大家供大家参考.具体如下: 这里需要用到go-odbc库,开源地址为:https://github.com/weigj/go-odbc 复制代码 代码如下: package main; import (     "fmt"     "database/sql"     _"odbc/driver" ) func main(){     conn,err := sql.O

  • go语言执行windows下命令行的方法

    本文实例讲述了go语言执行windows下命令行的方法.分享给大家供大家参考.具体如下: 在golang里执行windows下的命令行,例如在golang里面调用 del d:\a.txt 命令 复制代码 代码如下: package main import(     "fmt"     "os/exec" ) func main(){       c := exec.Command("cmd", "/C", "del

  • GO语言延迟函数defer用法分析

    本文实例讲述了GO语言延迟函数defer用法.分享给大家供大家参考.具体分析如下: defer 在声明时不会立即执行,而是在函数 return 后,再按照 FILO (先进后出)的原则依次执行每一个 defer,一般用于异常处理.释放资源.清理数据.记录日志等.这有点像面向对象语言的析构函数,优雅又简洁,是 Golang 的亮点之一. 代码1:了解 defer 的执行顺序 复制代码 代码如下: package main import "fmt" func fn(n int) int {

  • go语言睡眠排序算法实例分析

    本文实例讲述了go语言睡眠排序算法.分享给大家供大家参考.具体分析如下: 睡眠排序算法是一个天才程序员发明的,想法很简单,就是针对数组里的不同的数开多个线程,每个线程根据数的大小睡眠,自然睡的时间越长的,数越大,哈哈,搞笑吧,这种算法看起来很荒唐,但实际上很天才,它可以充分利用多核cpu进行计算. 复制代码 代码如下: package main import (     "fmt"     "time" ) func main() {     tab := []in

  • go语言通过反射获取和设置结构体字段值的方法

    本文实例讲述了go语言通过反射获取和设置结构体字段值的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: type MyStruct struct {         N int } n := MyStruct{ 1 } // get immutable := reflect.ValueOf(n) val := immutable.FieldByName("N").Int() fmt.Printf("N=%d\n", val) // prints

  • go语言中使用timer的常用方式

    本文实例总结了go语言中使用timer的常用方式.分享给大家供大家参考.具体分析如下: 下面三段代码(A,b,C)的功能都是在5分钟后执行指定的函数的go语言代码: 复制代码 代码如下: // (A) time.AfterFunc(5 * time.Minute, func() {     fmt.Printf("expired") } // (B) create a Timer object timer := time.NewTimer(5 * time.Minute) <-t

  • go语言检测文件是否存在的方法

    本文实例讲述了go语言检测文件是否存在的方法.分享给大家供大家参考.具体分析如下: go语言检测文件是否存在,首先创建一个FileInfo,如果不报错,再通过 IsDir()检查是否是目录 复制代码 代码如下: finfo, err := os.Stat("filename.txt") if err != nil {     // no such file or dir     return } if finfo.IsDir() {     // it's a file } else

  • Go语言实现定时器的方法

    本文实例讲述了Go语言实现定时器的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (  "fmt"  "time" ) func testTimer1() {  go func() {   fmt.Println("test timer1")  }() } func testTimer2() {  go func() {   fmt.Println("test timer2&

  • Go语言中定时器cron的基本使用教程

    cron是什么 cron的意思就是:计划任务,说白了就是定时任务.我和系统约个时间,你在几点几分几秒或者每隔几分钟跑一个任务(job),就那么简单. 前言 cron 是 robfig 开发的一个定时作业库,robfig 总是想的比别人早,给了我们这些 Gopher 不少急需的东西,想当年 revel 的出现也是这样的.看看 cron 的使用,还是一如既往的简洁明了,发现 Go 的世界里,有些产品还是有鲜明的个人特质的,那就是所谓的个人魅力吧?! 总之 robfig 开发的产品都是有一定超前性,比

  • Go语言实现定时器的原理及使用详解

    目录 0. 前言 1. Timer定时器 1.1 time.NewTimer() 和 time.After() 1.2 time.AfterFunc 2. Ticker定时器 0. 前言 在进行并发编程时,有时候会需要定时功能,比如监控某个GO程是否会运行过长时间.定时打印日志等等. GO标准库中的定时器主要有两种,一种为Timer定时器,一种为Ticker定时器.Timer计时器使用一次后,就失效了,需要Reset()才能再次生效.而Ticker计时器会一直生效,接下来分别对两种进行介绍. 1

  • Go语言常用字符串处理方法实例汇总

    本文实例汇总了Go语言常用字符串处理方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (     "fmt"     "strings"     //"unicode/utf8" ) func main() {     fmt.Println("查找子串是否在指定的字符串中")     fmt.Println(" Contains 函数的用法")    

  • go语言使用scp的方法实例分析

    本文实例讲述了go语言使用scp的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (     "code.google.com/p/go.crypto/ssh"     "crypto"     "crypto/rsa"     "crypto/x509"     "encoding/pem"     "fmt"     "

  • Go语言文件操作的方法

    本文实例讲述了Go语言文件操作的方法.分享给大家供大家参考.具体如下: 关闭文件: 复制代码 代码如下: func (file *File) Close() os.Error {     if file == nil {         return os.EINVAL     }     e := syscall.Close(file.fd)     file.fd = -1 // so it can't be closed again     if e != 0 {         retu

  • CentOS 7下配置Ruby语言开发环境的方法教程

    本文跟大家分享的是在CentOS 7下配置Ruby语言开发环境的方法教程,分享出来供大家参考学习,下面来看看详细的介绍: 安装Ruby 2.2 CentOS7存储库中的Ruby版本为2.0,但如果需要,可以使用RPM软件包安装2.2 1.添加CentOS SCLo软件集合存储库 [root@linuxprobe ~]# yum -y install centos-release-scl-rh centos-release-scl # set [priority=10] [root@linuxpr

  • Kotlin 语言中调用 JavaScript 方法实例详解

    Kotlin 语言中调用 JavaScript 方法实例详解 Kotlin 已被设计为能够与 Java 平台轻松互操作.它将 Java 类视为 Kotlin 类,并且 Java 也将 Kotlin 类视为 Java 类.但是,JavaScript 是一种动态类型语言,这意味着它不会在编译期检查类型.你可以通过动态类型在 Kotlin 中自由地与 JavaScript 交流,但是如果你想要 Kotlin 类型系统的全部威力 ,你可以为 JavaScript 库创建 Kotlin 头文件. 内联 J

  • 用Python编写简单的定时器的方法

    下面介绍以threading模块来实现定时器的方法. 首先介绍一个最简单实现: import threading def say_sth(str): print str t = threading.Timer(2.0, say_sth,[str]) t.start() if __name__ == '__main__': timer = threading.Timer(2.0,say_sth,['i am here too.']) timer.start() 不清楚在某些特殊应用场景下有什么缺陷

  • Go语言Echo服务器的方法

    本文实例讲述了Go语言Echo服务器的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (     "net"     "io" ) func main() {     serv, e := net.Listen("tcp", ":12345")     if e != nil {         panic(e)     }     defer serv.Close()  

随机推荐