2012-07-03 69 views
2

我正在創建一個小型應用程序,它將執行4種不同的耗時任務,例如第一個輸出是第二個輸入等等。 在每個任務級別,輸出都附加到列表中,下一個任務彈出,操作並將其輸出附加到其輸出列表中,等等...... 我認爲我會完成任務的方式是讓多個線程在這4項任務中的每一項上。python:根據需求產生線程

回答這個問題,有什麼辦法可以讓我的應用程序在每個任務級別產生線程,這取決於其輸入隊列中的任務數量?

假設第二個任務的輸入列表在開始時是空的,所以數字線程爲零,但是如果有一個任務在那裏,則會產生單個線程,兩個等等......並且當然有一個上限線程的數量是10,所以如果輸入列表的長度高達100,運行的線程數仍然保持在10.

請建議pythonic方式去實現這一點。

回答

1

您已成功發明了Thread Pool。有內置的支持,並且有很多librariesexamples會爲您提供這個,所以請使用一個或從他們的代碼學習。

from multiprocessing.pool import ThreadPool 
+0

我會建議使用[多處理模塊(http://docs.python.org/library/multiprocessing.html)'從多處理進口Pool'爲主線可能不會做你想做的原因是什麼Global Interpreter鎖 –