2017-04-10 4 views
0

Ich habe einen Threadpool und wollen die Anzahl der aktuell laufenden Arbeiter zeigen:Python-Thread-Pool Größe

threadPool = ThreadPool(poolSize) 
... 
threadPool._processes 

_processes zeigt immer 2, auch wenn mein Poolsize ist viel größer. Ich weiß auch, dass es mehr laufende Arbeiter gibt, weil die Verarbeitungszeit abnimmt, wenn ich die poolSize vergrößere.

Antwort

0

Das ist nicht die Größe Ihres Pools. _processes ist nur der processes Wert, den Sie an den Initialisierer übergeben haben (oder die Anzahl der CPUs, wenn processes None ist). Mit

ThreadPool()._processes 

erstellt man einen neuen Pool, initialisiert die Anzahl der CPUs auf Ihrem System. Ich werde jetzt meine psychischen Kräfte verwenden, um vorherzusagen, dass du 2 Cpus hast. Wenn Sie die Größe Ihres Pools möchten, überprüfen Sie Ihren Pool, anstatt einen neuen zu erstellen.

threadPool = ThreadPool(poolSize) 
... 
threadPool._processes 
+0

Wie überprüfe ich die Größe des aktuellen Pools? d.h. die tatsächlich verwendete Größe. Nicht poolSize. (Angenommen, poolSize ist auf 100 gesetzt und nur 50 benötigt) – Chris

+0

Oh, Sie wollen, wie viele sind in einem bestimmten Zeitpunkt in Betrieb? Ich bin mir nicht sicher, ob das verfolgt wird. Ich werde einen Blick werfen. – tdelaney

+0

Ich sehe keinen guten Weg, es zu tun. Sie können einen prozessweiten Zähler implementieren, den jeder Arbeiter inkrementiert und dekrementiert. – tdelaney

Verwandte Themen