go语言定时器

LvanNeo · · 1352 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

[plain] view plaincopy
  1. package main  
  2.   
  3. import "fmt"  
  4. import "time"  
  5.   
  6. func main() {  
  7.         t := time.NewTimer(2 * time.Second)  
  8.         //v := <- t.C   
  9.         //fmt.Println(v)  
  10.         go onTime(t.C)  
  11.         fmt.Println("main thread")  
  12.         time.Sleep(10 * time.Second)  
  13.   
  14. }  
  15.   
  16. func onTime(c <-chan time.Time) {  
  17.         for now := range c {   
  18.                 // now := <- c  
  19.                 fmt.Println("onTime", now)  
  20.         }     
  21. }  



[plain] view plaincopy
  1. package main  
  2.   
  3. import "fmt"  
  4. import "time"  
  5.   
  6. func main() {  
  7.     time.AfterFunc(5 * time.Second, f1)  
  8.     time.AfterFunc(2 * time.Second, f2)  
  9.     fmt.Println("main thread")  
  10.     time.Sleep(10 * time.Second)  
  11. }  
  12.   
  13.   
  14. func f1() {  
  15.     fmt.Println("f1 done !")  
  16. }  
  17.   
  18. func f2() {  
  19.     fmt.Println("f2 done !")  
  20. }  


[plain] view plaincopy
  1. package main  
  2.   
  3. import "fmt"  
  4. import "time"  
  5.   
  6. var count int = 0  
  7.   
  8. func main() {  
  9.     t := time.Tick(2 * time.Second)  
  10.   
  11.     i := 0  
  12.     for now := range t {  
  13.         fmt.Println(now, doSomething())  
  14.         i++  
  15.         if i > 10 {  
  16.             break  
  17.         }  
  18.     }  
  19. }  
  20.   
  21. func doSomething() int {  
  22.     count++  
  23.     return count  
  24. }  

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:LvanNeo

查看原文:go语言定时器

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1352 次点击  
加入收藏 微博
0 回复
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传