время выполнения кода Python - PullRequest
3 голосов
/ 15 января 2011

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

Возможно ли это в python?

Ответы [ 3 ]

2 голосов
/ 15 января 2011

Это должно сработать:

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]()
1 голос
/ 15 января 2011

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

0 голосов
/ 15 января 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...