me di cuenta el siguiente comportamiento en el siguiente código (usando la clase threading.Timer):Python - threading.Timer permanece vivo después de llamar a cancelar() método
import threading
def ontimer():
print threading.current_thread()
def main():
timer = threading.Timer(2, ontimer)
timer.start()
print threading.current_thread()
timer.cancel()
if timer.isAlive():
print "Timer is still alive"
if timer.finished:
print "Timer is finished"
if __name__ == "__main__":
main()
La salida del código es:
<_MainThread(MainThread, started 5836)>
Timer is still alive
Timer is finished
Como notamos en la salida, que el objeto del temporizador sigue vivo y terminado al mismo tiempo.
De hecho, me gustaría llamar a una función similar cientos de veces, y me pregunto si los temporizadores "vivos" pueden afectar el rendimiento.
Me gustaría detener o cancelar el objeto del temporizador de forma adecuada. ¿Lo estoy haciendo bien?
Gracias
Gracias por elaboración. –