Buenas haber si alguien me puede ayudar a resolver este problema que tengo! :-\
Supongamos que tengo un codigo parecido a este:
import time
import threading
def hola():
while 1:
print "Hola"
time.sleep(3)
t = threading.Thread(target=hola())
t.setDaemon(True)
t.start()
while True:
print "adios"
time.sleep(5)
Supuestamente si ejecuto el thread como daemon deberia dejar avanzar el script no?
Un saludo!
Supuestamente si ejecuto el thread como daemon deberia dejar avanzar el script no?
lo que hace es que si se cierra el thread principal el daemon tambien se cierra solo cambia eso. si por ejemplo hago una ventana y el usuario la intenta cerrarla si tuviera corriendo threads que no son daemon no podra cerrarse pero en cambio como daemon si se cerrara.
el script avanzara sea o no sea daemon el thread
Vale, entonces porque no me avanza?
Una imagen vale más que mil palabras!
http://imgur.com/8bUhxeY
porque los threads de python son algo extraños solo se puede ejecutar un thread a la vez y luego se bloquea para ejecutar otro, esto es lo que hacen los threads de forma oculta por alguna razon python no lo hace y hay que hacer todo este proceso a mano
http://mundogeek.net/archivos/2008/04/18/threads-en-python/
si quieres evitar esto crea otro proceso
cuando dices avanza estas imaginando el proceso como algo independiente del thread y no es asi cuando uno avanza el otro tambien.
Vale, ahora lo he entendido todo!
Muchas gracias por la información!
Un saludo! ;)