我想在每次执行时在完全相同的时间执行一段代码,有点像播放媒体文件......(每次执行相同的代码的时间完全相同)
这在python中可能吗?
这应该可以解决问题:
def run_with_delay(funcs, interval):
for f in funcs[:-1]:
before = time()
f()
# compensate the interval with the execution time.
# NB: careful for functions that have a greater
# execution time than interval
after = time()
if after - before < interval:
sleep(interval - (after - before))
# last function is taken separately because we don't need
# an extra useless sleep
funcs[-1]()
我认为这不能通过语言结构(任何语言)来保证——你必须在实时操作系统上。我相信多媒体应用程序利用设备级缓冲来补偿操作系统进程调度程序中的时间抖动。
我应该认为这在交错指令以模拟多个线程同时执行的操作系统中是不可能的。
您需要一个实时库或语言来为您的代码规定截止日期,即使这样也不能保证在分配的时间内执行。