欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > [go] 用ticker定时器来替代循环任务

[go] 用ticker定时器来替代循环任务

2024/11/30 10:48:49 来源:https://blog.csdn.net/sepnineth/article/details/141421732  浏览:    关键词:[go] 用ticker定时器来替代循环任务

使用 time.Ticker 来定期执行检查,间隔可以根据需求调整(例如每秒检查一次)。

package mainimport ("fmt""sync""time"
)var (gDeviceList= make(map[string]int)mu            sync.MutexmaxCheckCount = 30
)func main() {// 模拟数据插入gDeviceList["device1"] = 0gDeviceList["device2"] = 0// 使用 goroutine 在后台处理go monitorDevices()// 模拟其他工作time.Sleep(5 * time.Second)// 打印最后剩余的设备mu.Lock()for udid, count := range gDeviceList{fmt.Printf("UDID: %s, Count: %d\n", udid, count)}mu.Unlock()
}func monitorDevices() {ticker := time.NewTicker(1 * time.Second)defer ticker.Stop()for range ticker.C {mu.Lock()for udid, count := range gDeviceList{gDeviceList[udid] = count + 1if count > maxCheckCount {delete(gDeviceList, udid)}}mu.Unlock()}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com