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