Время выполнения кода Python
Я хочу выполнять часть своего кода в одно и то же время каждый раз, когда выполняю его, как при воспроизведении медиа-файла... (каждый раз один и тот же фрагмент кода выполняется в одно и то же время)
Это возможно в питоне?
3 ответа
Это должно сделать трюк:
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]()
Я не думаю, что это может быть гарантировано языковой конструкцией (на любом языке) - вам придется работать в операционной системе реального времени. Я полагаю, что мультимедийные приложения используют преимущества буферизации на уровне устройства для компенсации дрожания синхронизации в планировщике процесса ОС.
Я должен думать, что это было бы невозможно в операционной системе, которая чередует инструкции для симуляции одновременного выполнения нескольких потоков.
Вам понадобится библиотека или язык в реальном времени, чтобы определить сроки для вашего кода, и даже в этом случае выполнение не может быть гарантировано в отведенное время.