Время выполнения кода 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]()

Я не думаю, что это может быть гарантировано языковой конструкцией (на любом языке) - вам придется работать в операционной системе реального времени. Я полагаю, что мультимедийные приложения используют преимущества буферизации на уровне устройства для компенсации дрожания синхронизации в планировщике процесса ОС.

Я должен думать, что это было бы невозможно в операционной системе, которая чередует инструкции для симуляции одновременного выполнения нескольких потоков.

Вам понадобится библиотека или язык в реальном времени, чтобы определить сроки для вашего кода, и даже в этом случае выполнение не может быть гарантировано в отведенное время.

Другие вопросы по тегам