zoukankan      html  css  js  c++  java
  • golang 延时任务

    通过for循环select创建一个定时任务,等待主程序往通道里写数据,并且在满足条件时及时关闭
    ps:注释均可省略



    package main import ( "fmt" "time" ) // 延时任务 var tFlag bool var tCh = make(chan int, 1) var count int func main() { go WaitTime() for i := 0; i < 10; i++ { if tFlag == true { break } tCh <- i //time.Sleep(1*time.Second) } fmt.Println("end") } func WaitTime() { t1 := time.NewTicker(3 * time.Second) //go func() { for { select { case <-t1.C: fmt.Println("t1定时器") //t1.Stop() tFlag = true case msg := <-tCh: fmt.Println(msg, "msg") count += msg //fmt.Println(msg) if count >= 12 { tFlag = true } } if tFlag == true { break } } //}() //fmt.Println(<-tCh,"<-tCh") //<-tCh } //0 msg //1 msg //2 msg //3 msg //4 msg //5 msg //end

      

  • 相关阅读:
    去除文件中的空行
    数据分析 numpy matplotlib
    程序员
    c#
    java
    微信小游戏
    小游戏开发手册
    模板
    微信小程序小程序代码构成(.json .js .wxss .wxml)
    微信程序
  • 原文地址:https://www.cnblogs.com/simple123/p/13930470.html
Copyright © 2011-2022 走看看