2013-08-05 27 views
0

我想爲某個任務創建一個線程池。我想隨時維護一定數量的線程。 我該怎麼做?如何在任何時候檢查活動線程的數量,並在其計數小於指定計數的情況下創建新線程?如何在Python中創建一個線程池,我可以在任何時候運行固定數量的線程?

+0

也許你的使用情況是非常適合使用AMQP,而不是線程(首席/工人模式),如果是的話看看芹菜。 –

+0

類似的東西來python3.3的['ThreadPoolExecutor'(http://docs.python.org/3.3/library/concurrent.futures.html#threadpoolexecutor)? – Bakuriu

回答

0

如果您正在使用現有的線程池implementation-concurrent.futures.ThreadPoolExecutor,multiprocessing.dummy.Pool或者您在PyPI或其他地方找到的任何東西 - 這將全部自動處理。

如果你想手動建立自己的東西,這個問題並沒有真正意義。您需要跟蹤您的線程,手動啓動它們,並知道它們何時完成,因此您始終知道活動線程的數量。

如果你想示例代碼來看看,the source to concurrent.futures可讀性很強,而且很短。正如您從快速查看中看到的那樣,每次提交新作業時都會調用_adjust_thread_count,並且該函數僅檢查len(self._threads) < self.max_workers並在需要時創建新線程。

相關問題