Найти - Пользователи
Полная версия: threading.Timer
Начало » Python для новичков » threading.Timer
1 2 3
EBFE
odnochlen
когда функция не успеет завершиться до повторного срабатывания таймера
+
Кстати! Как компенсировать время выполнения функции?
Так это не баг, а фича

import threading
import time
def get1():
    threading.Timer(1.0, get1).start()
    time.sleep(2.0)
    print "hello"
=> выполняется 1 раз в секунду
А так, да, согласен - нечто большее, чем принт хелло и проблемы скорее всего будут “очень занимательными”. Зато велосипед для гонки клевый

будет же всегда создаваться новый класс threading.Timer() что будет постоянно уменьшать оперативку, не?
Мусоросборщик подберет.

Zerstoren
Вы всегда можете использовать некое публичное хранилище состояния (просто глобальная переменная)
В которой будет описано состояние отработки треда.
dimy44
Мусоросборщик подберет.
я извиняюсь, а что он подберет? Ни одной ссылки нету, да и внутри функции же…
Zerstoren
dimy44
я извиняюсь, а что он подберет? Ни одной ссылки нету, да и внутри функции же…
Вот именно по этому, он ее и подберет.
odnochlen
Zerstoren
Вы всегда можете использовать некое публичное хранилище состояния (просто глобальная переменная)
В которой будет описано состояние отработки треда.
Можно, конечно, лок добавить, или еще что-то, но зачем?


Так все-таки
odnochlen
Кстати! Как компенсировать время выполнения функции? Можно сделать так, чтобы интервал между вызовами был как можно ближе к паузе (естественно, если это время меньше ее)?
-> чтобы ошибка не накапливалась. Без таймера тут никак?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB