Python: высокоточное время - PullRequest
39 голосов
/ 31 июля 2009

подскажите, как мне получить высокоточную функцию сна в Python2.6 на Win32 и в Linux?

Ответы [ 3 ]

60 голосов
/ 31 июля 2009

Вы можете использовать числа с плавающей точкой в ​​sleep():

Аргумент может быть числом с плавающей запятой, чтобы указать более точное время сна.

So

time.sleep(0.5)

будет спать полсекунды.

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

10 голосов
/ 31 июля 2009

Вот похожий вопрос:

как с точностью до-это-питоны-времени сна

Вкл. linux Если вам нужна высокая точность, вы можете использовать ctypes для вызова nanosleep () или clock_nanosleep () . Хотя я не уверен во всех последствиях попытки этого.

1 голос
/ 12 января 2019
def start(self):
    sec_arg = 10.0
    cptr = 0
    time_start = time.time()
    time_init = time.time()
    while True:
        cptr += 1
        time_start = time.time()
        time.sleep(((time_init + (sec_arg * cptr)) - time_start ))

        # AND YOUR CODE .......
        t00 = threading.Thread(name='thread_request', target=self.send_request, args=([]))
        t00.start()

Это очень хорошая точность на Linux

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