我在理解 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 關注
- 363 瀏覽
添加回答
舉報
0/150
提交
取消