2017-04-10 89 views
0

我有一個線程池,並要顯示當前運行的職工人數:蟒蛇線程池的大小

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

_processes總是顯示2,即使我的poolSize要大得多。我也知道有更多的正在運行的工作者,因爲當我增加poolSize時,處理時間會減少。

回答

0

這不是你池的大小。 _processes只是您傳遞給初始值設定項的processes值(或者如果processes爲None,則爲cpus的數量)。隨着

ThreadPool()._processes 

您創建了一個新的,初始化CPU的系統上的數字。現在我將用我的心靈力量來預測你有2點cpus。如果你想要你的游泳池的大小,檢查你的游泳池,而不是創建一個新的游泳池

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

如何檢查當前池的大小?即實際使用的尺寸。不是poolSize。 (假設poolSize設置爲100,並且只需要50) – Chris

+0

哦,你想要在任何給定的時間有多少人在使用?我不確定這是跟蹤的。我會偷看一下。 – tdelaney

+0

我沒有看到一個好方法來做到這一點。您可以實現一個流程範圍計數器,每個工作人員增量和減量。 – tdelaney