<>如果你真的需要精确的时间,我强烈建议使用一个没有垃圾收集的语言,比如C或C++。但是,如果您能够容忍与精确光栅的某些偏差,那么使用Python可能会很好。在
关于时间。时间,请参阅文档中相应的页面。Windows和Linux有区别。后者说,时间。时间()具有更高的分辨率,因为Windows应该是时间时钟(). 后者我无法确认,因为我没有可用的Windows设备。在
无论如何,使用线程/多处理框架可能会更好,因为在轮询时隙时,CPU会非常繁忙。在
啊,我建议只获取一次time(),并与一些容差进行比较。否则你最终会失去时隙。一个好的方法是计算下一个时隙的时间,然后比较time()<;=下一个时隙。这样,即使你错过了准确的时间,你最终也会在不久之后命中。在
编辑:
您需要为每个间隔单独维护下一个时隙。此外,为避免长期偏差,请使用绝对时间,而不是增量:curr_time = time.time()
if curr_time >= interval1_next_time:
interval1_next_time += INTERVAL1_TSLOT
if curr_time >= interval1_next_time:
# we lost a full timeslot, so slowly adjust (can also report)
interval1_next_time += INTERVAL1_TSLOT
....
if curr_time >= interval2_next_time:
interval2_next_time += INTERVAL2_TSLOT
....