Форум сайта python.su
20
odnochlen+
когда функция не успеет завершиться до повторного срабатывания таймера
Кстати! Как компенсировать время выполнения функции?Так это не баг, а фича
import threading import time def get1(): threading.Timer(1.0, get1).start() time.sleep(2.0) print "hello"

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

odnochlen-> чтобы ошибка не накапливалась. Без таймера тут никак?
Кстати! Как компенсировать время выполнения функции? Можно сделать так, чтобы интервал между вызовами был как можно ближе к паузе (естественно, если это время меньше ее)?
Офлайн