2011-01-10 52 views
1

我创建了一个Python闹钟,有一个简单的问题,检查时间:简单的闹钟和每秒

我的闹钟的决议必须精确到秒。目前我有一个线程每0.5秒唤醒一次,并检查是否有时间开始制造噪音。

我唯一担心的是系统在某些时候会完全超载,并且闹钟没有响,因为闹钟线程在第二秒时间内仍然处于睡眠状态,因此它应该检查时间。

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

+0

你可以发布一些代码给我们,知道你在做什么? – 2011-01-10 20:38:14

回答

2

检查定时器功能的标准signal module

此外,如果您已经知道何时触发您的操作,为何不在执行之前执行time.sleep(seconds)? (seconds应该是几秒钟内触发该动作的时间,很明显)

+0

如果只有一个事件需要检查,如果用户nevers改变时间,冻结进程或永远不休眠系统,那很容易。 – BatchyX 2011-01-10 20:49:16

2

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

你应该坚持0.5秒的分辨率(或者更糟,如果没有生活依赖于它),并触发事件时,它是在或过去到期时间,并保持每个事件的标志,如果它已经被解雇。然后它会一直被激发一次,并且尽可能接近目标时间。