为了账号安全,请及时绑定邮箱和手机立即绑定

golang:如何以固定的时间间隔从运行的 goroutine 中打印数据?

golang:如何以固定的时间间隔从运行的 goroutine 中打印数据?

Go
斯蒂芬大帝 2021-07-07 18:27:20
我在理解 golang 中的频道时遇到了一些麻烦。据我所知,通道是在给定的时间间隔内将数据发布到控制台的正确方法。所以说我有一个正在工作的 goroutine,然后在我的主循环中,我想每秒从该 goroutine 打印数据。如何编码这样的东西?一个简单的例子将不胜感激。
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

如果您想将数据从一个例程传递到另一个例程,您可以这样做


package main


import "fmt"


func routine(output chan int) {

    for i := 0; i < 1000; i++ {

        output <- i

    }

    close(output)

}


func main() {

    ch := make(chan int)

    go routine(ch)

    for i := range ch {

        fmt.Printf("%d ", i)

    }

}

但这并不是你所要求的,你每秒钟都想要一个例行公事的状态。为此,通道不是一个好的解决方案。两个例程之间共享的变量将解决这个问题。一个例程更新它,另一个例程每秒读取一次。


查看完整回答
反对 回复 2021-07-12
  • 2 回答
  • 0 关注
  • 337 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信