Класс threading.Timer
имеет метод cancel
, и хотя он не отменяет поток , он остановит таймер от фактического срабатывания.Что на самом деле происходит, так это то, что метод cancel
устанавливает threading.Event
, и поток, фактически выполняющий threading.Timer
, проверит это событие после завершения ожидания и до того, как он фактически выполнит обратный вызов.
При этомтаймеры обычно реализуются без , используя отдельный поток для каждого.Лучший способ сделать это зависит от того, что на самом деле делает ваша программа (в ожидании этого таймера), но все, что связано с циклом обработки событий, например GUI и сетевые инфраструктуры, все имеют способы запросить таймер, который подключен к eventloop.