1

我在 python 中创建一个闹钟并且有一个简单的问题:

我的闹钟的分辨率需要精确到秒。目前我有一个每 0.5 秒唤醒一次的线程,并检查是否是时候开始发出噪音了。

我唯一担心的是,不知何故,系统在某些时候完全过载并且警报没有响起,因为闹钟线程在它应该检查时间的那一秒内仍然处于睡眠状态。

所以我的问题是,每 0.05 秒检查一次会更好吗?或者有没有办法在特定时间用python注册事件处理程序,所以我不必自己检查时间。

4

2 回答 2

2

这不是最好的解决方案。不能保证您被锁定超过一秒钟。

您应该坚持 0.5 秒的分辨率(如果没有生命依赖它,则更糟)并在事件到达或超过到期时间时触发该事件,如果已触发,则为每个事件保留一个标志。然后它总是会被准确地触发一次,并且尽可能接近目标时间。

于 2011-01-10T20:38:39.263 回答
2

检查标准signal模块的定时器功能。

此外,如果您已经知道何时触发您的操作,为什么不在执行time.sleep(seconds)之前执行呢?(seconds显然应该是以秒为单位触发动作的剩余时间)

于 2011-01-10T20:42:16.760 回答