简单的闹钟和每秒检查时间
我正在用Python制作一个闹钟,有个简单的问题:
我的闹钟需要精确到秒。目前我有一个线程,每0.5秒唤醒一次,检查是否该响铃了。
我唯一担心的是,系统在某个时候可能会变得非常忙碌,这样闹钟就不会响,因为闹钟线程在应该检查时间的那一秒还在睡觉。
所以我的问题是,每0.05秒检查一次会更好吗?或者有没有办法在Python中注册一个事件处理器,让我不需要自己一直检查时间。
2 个回答
2
这不是最好的解决办法。这样做不能保证你会被锁定超过一秒钟。
你应该保持在0.5秒的精度(如果没有人命关天的话,可以更差一些),并在事件到达或超过预定时间时触发它。同时,为每个事件设置一个标记,记录它是否已经被触发过。这样的话,事件就会在尽可能接近目标时间的情况下,确保只触发一次。
2
查看标准的 signal
模块,里面有定时器的相关功能。
另外,如果你已经知道什么时候要执行你的操作,那为什么不在执行之前先用 time.sleep(seconds)
呢?(seconds
应该是距离执行操作的剩余时间,单位是秒,当然了)