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

self.read działa przez czas nieokreślony, więc program nigdy nie dotrze do linii drukowania. Jak to możliwe bez wywoływania t1.start()? (Nawet jeśli zadzwonię do tego, to shold zacznie działać i przejdzie do następnej linii, czyż nie?)Wątek Python uruchamia się przed wywołaniem Thread.start

Odpowiedz

11

Przekazujesz wynik z self.read na argument docelowy wątku. Wątek oczekuje, że zostanie przekazana funkcja do wywołania, więc po prostu usuń nawiasy i zapamiętaj, aby rozpocząć wątek:

t1=threading.Thread(target=self.read) 
t1.start() 
print "something" 
Powiązane problemy