我在 python 中创建一个闹钟并且有一个简单的问题:
我的闹钟的分辨率需要精确到秒。目前我有一个每 0.5 秒唤醒一次的线程,并检查是否是时候开始发出噪音了。
我唯一担心的是,不知何故,系统在某些时候完全过载并且警报没有响起,因为闹钟线程在它应该检查时间的那一秒内仍然处于睡眠状态。
所以我的问题是,每 0.05 秒检查一次会更好吗?或者有没有办法在特定时间用python注册事件处理程序,所以我不必自己检查时间。
这不是最好的解决方案。不能保证您被锁定超过一秒钟。
您应该坚持 0.5 秒的分辨率(如果没有生命依赖它,则更糟)并在事件到达或超过到期时间时触发该事件,如果已触发,则为每个事件保留一个标志。然后它总是会被准确地触发一次,并且尽可能接近目标时间。
检查标准signal
模块的定时器功能。
此外,如果您已经知道何时触发您的操作,为什么不在执行time.sleep(seconds)
之前执行呢?(seconds
显然应该是以秒为单位触发动作的剩余时间)