2016-04-01 11 views
0

Ich versuche diesen einfachen Code, den ich in Pydev gefunden habe, mit dem Thread-Modul zu testen, weil das Threading-Modul für mich keine Option ist. Die Threads laufen nicht einmal und es wird lediglich HELLO gedruckt und das Programm beendet. Ich benutzte dieses Modul mit meinem ursprünglichen Programm, aber es machte dasselbe, also dachte ich, ich würde mit dem einfachen Test der Quelle beginnen. Warum passiert dies?Python Thread-Modul

Code:

import thread 
import time 

# Define a function for the thread 
def print_time(threadName, delay): 
    count = 0 
    while count < 5: 
     time.sleep(delay) 
     count += 1 
     print "%s: %s" % (threadName, time.ctime(time.time())) 

# Create two threads as follows 
try: 
    thread.start_new_thread(print_time, ("Thread-1", 2,)) 
    thread.start_new_thread(print_time, ("Thread-2", 4,)) 
except: 
    print "Error: unable to start thread" 

print "HELLO" 

Es ist nicht einmal Fehler oder Ausnahmen erzeugen.

Antwort

0

Das Problem ist, dass Ihr Haupt-Thread endet, bevor Sie die Ausgabe für eine der beiden Fäden sehen können, nur eine Verzögerung am Ende auf dem Hauptthread setzen:

print "HELLO" 
time.sleep(20) 

Wenn Sie die threading verwendet haben Modul Sie könnten auch die Threads .join() Methode zu warten, bis es zu Ende, aber ich bin mir nicht sicher, das Äquivalent in der thread-Modul.

+0

super danke! – shapiro