golang 在协程里 每秒显示一条记录
时间: 2023-11-30 21:03:19 浏览: 116
在 Golang 中,可以使用 `time.Ticker` 类型来创建一个时间计数器,用于在指定的时间间隔内执行一些操作。结合协程的特性,可以实现每秒显示一条记录的功能。例如:
```go
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(1 * time.Second)
defer ticker.Stop()
for {
select {
case t := <-ticker.C:
go func() {
fmt.Printf("当前时间:%v\n", t)
}()
}
}
}
```
在上面的示例中,我们使用 `time.NewTicker()` 方法创建一个每隔 1 秒触发一次的计数器,并在计数器触发时,使用匿名的协程来输出当前时间。由于使用了 `select` 语句,程序会一直运行,不断接收计数器触发的消息并在协程中处理,即使协程的执行时间超过了计数器的时间间隔,也不会影响计数器的触发。
需要注意的是,开启过多的协程会占用大量的系统资源,因此要根据实际情况和性能需求来合理地选择协程的数量。另外,协程之间的通信也需要谨慎处理,避免出现死锁等问题。
阅读全文