我在理解 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)
}
}
但这并不是你所要求的,你每秒钟都想要一个例行公事的状态。为此,通道不是一个好的解决方案。两个例程之间共享的变量将解决这个问题。一个例程更新它,另一个例程每秒读取一次。
- 2 回答
- 0 关注
- 337 浏览
添加回答
举报
0/150
提交
取消