猿问

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

我在理解 golang 中的频道时遇到了一些麻烦。据我所知,通道是在给定的时间间隔内将数据发布到控制台的正确方法。

所以说我有一个正在工作的 goroutine,然后在我的主循环中,我想每秒从该 goroutine 打印数据。

如何编码这样的东西?一个简单的例子将不胜感激。


斯蒂芬大帝
浏览 338回答 2
2回答

噜噜哒

如果您想将数据从一个例程传递到另一个例程,您可以这样做package mainimport "fmt"func routine(output chan int) {&nbsp; &nbsp; for i := 0; i < 1000; i++ {&nbsp; &nbsp; &nbsp; &nbsp; output <- i&nbsp; &nbsp; }&nbsp; &nbsp; close(output)}func main() {&nbsp; &nbsp; ch := make(chan int)&nbsp; &nbsp; go routine(ch)&nbsp; &nbsp; for i := range ch {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Printf("%d ", i)&nbsp; &nbsp; }}但这并不是你所要求的,你每秒钟都想要一个例行公事的状态。为此,通道不是一个好的解决方案。两个例程之间共享的变量将解决这个问题。一个例程更新它,另一个例程每秒读取一次。
随时随地看视频慕课网APP

相关分类

Go
我要回答