2012-08-03 23 views
9
t1=threading.Thread(target=self.read()) 
    print "something" 
    t2=threading.Thread(target=self.runChecks(), args=(self)) 

self.read se ejecuta indefinidamente, por lo que el programa nunca llegará a la línea de impresión. ¿Cómo es esto posible sin llamar a t1.start()? (Incluso si lo llamo, debe comenzar a ejecutarse y pasar a la línea siguiente, ¿no es así?)El hilo de Python comienza a ejecutarse antes de llamar a Thread.start

Respuesta

11

Está pasando el resultado de self.read al argumento de destino de Thread. El hilo espera que se le pase una función para llamar, así que simplemente elimine los paréntesis y recuerde comenzar el hilo:

t1=threading.Thread(target=self.read) 
t1.start() 
print "something" 
Cuestiones relacionadas