Problema threads en python (setDaemon)

Iniciado por Robertus98, 5 Julio 2014, 02:54 AM

0 Miembros y 2 Visitantes están viendo este tema.

Robertus98

Buenas haber si alguien me puede ayudar a resolver este problema que tengo! :-\

Supongamos que tengo un codigo parecido a este:
Código (python) [Seleccionar]

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!

daryo

#1
Código (python) [Seleccionar]
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
buenas

Robertus98

#2
Vale, entonces porque no me avanza?
Una imagen vale más que mil palabras!
http://imgur.com/8bUhxeY

daryo

#3
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.
buenas

Robertus98

Vale, ahora lo he entendido todo!
Muchas gracias por la información!

Un saludo! ;)