Ich versuche Multithreading zu verwenden und um es einfach zu halten zuerst, ich bin mit den folgenden Code:Python Pool funktioniert nicht
import multiprocessing as mp
pool = mp.Pool(4)
def square(x):
return x**2
results=pool.map(square,range(1,20))
wie ich sie verstehe, sollten die Ergebnisse eine Liste sein mit den Quadraten von 1 bis 20. Der Code scheint jedoch nicht zu enden. (Das gleiche ohne pool endet im Handumdrehen, das lief für einige Minuten, bevor ich es manuell gestoppt habe).
Weitere Informationen: Task-Manager sagt mir, dass die zusätzlichen Python-Prozesse gestartet wurden und ausgeführt werden, aber verwenden Sie% meiner CPU; noch andere nicht verwandte Prozesse wie Firefox explodieren in ihrer CPU-Nutzung, während das Programm läuft. Ich benutze Windows 8 und eine i5-4300U CPU (Pooling zu 2 statt 4 hilft auch nicht)
Was mache ich falsch? Gibt es gute Ressourcen in der Pool-Klasse, die mir helfen könnten zu verstehen, was mit meinem Code nicht stimmt?
Versuchen Sie, in dem Sie Pool instanziiert und definieren Platz – user234461
auf Python 3.4/Linux Ich erhalte AttributeErrors geworfen am Pool Prozesse – user234461
Lesen Sie die Windows-spezifische Tipps in der Multiprozessing Dokumentation, wobei besonderes Augenmerk auf die Wende Ordnung Notwendigkeit für 'if __name__ == '__main __''. –