stop - threading python ejemplos
Python Threading con objeto de evento (1)
He visto muchos scripts de Python que usan Threads en una clase y muchos de ellos usan el threading.Event()
. Por ejemplo:
class TimerClass(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.event = threading.Event()
def run(self):
while not self.event.is_set():
print "something"
self.event.wait(120)
En el ciclo while, ¿por qué comprueban la condición si no configuran el self.event
?
Porque alguien más lo pondrá.
Por lo general, comienza un hilo en una parte de su aplicación y continúa haciendo lo que hace:
thread = TimerClass()
thread.start()
# Do your stuff
El hilo hace sus cosas, mientras tú haces tus cosas. Si desea terminar el hilo que acaba de llamar:
thread.event.set()
Y el hilo se detendrá.
Entonces la respuesta es: evento, en este caso, no se usa para controlar el hilo desde dentro del propio objeto de hilo. Se utiliza para controlar el hilo desde el exterior (desde el objeto que contiene la referencia al hilo).