Ich bin neu in Python und Threading. Ich versuche mehrere Threads gleichzeitig auszuführen. Hier ist mein Grundcode:Threads laufen nicht parallel in Python-Skript
import threading
import time
threads = []
print "hello"
class myThread(threading.Thread):
def __init__(self,i):
threading.Thread.__init__(self)
print "i = ",i
for j in range(0,i):
print "j = ",j
time.sleep(5)
for i in range(1,4):
thread = myThread(i)
thread.start()
Während 1 Thread für time.sleep(5)
wartet ich will ein anderer Thread zu starten. Kurz gesagt, alle Threads sollten parallel laufen.
Afaik, Threads in Python laufen alle auf einem ** single core **. Das einzige, was Threads tun können, ist, den CPU-Burst sozusagen zu erhöhen. Sie benötigen die 'Multiprocessing'-Bibliothek, die neue Prozesse startet, um mehr als einen einzelnen Kern zu erhalten. –
Wenn der Thread-Thread aufgebaut ist, ist es auf dem gleichen Thread. Wenn Sie möchten, dass Ihr Code ordnungsgemäß ausgeführt wird, sollten Sie Ihr 'time.sleep 'in der' run'-Methode und nicht im Konstruktor angeben. – n00dl3
Sie können sich [this antwort] (http://stackoverflow.com/a/18963931/4124317) zum Thema 'threading' anschauen. Sie müssen 'Thread' grundsätzlich nicht ableiten, aber wenn Sie dies tun, verwenden Sie den Konstruktor' __init __() 'nicht, um Aufgaben auszuführen, die mit Threads versehen werden sollten. – ImportanceOfBeingErnest