如何在python中创建一个线程池,我可以随时运行固定数量的线程?

时间:2013-08-05 19:50:13

标签: python python-multithreading

我想为某个任务创建一个线程池。我希望随时保持一定数量的线程。 我怎样才能做到这一点 ?如何在任何时候检查活动线程的数量,如果计数小于指定的计数,则创建新线程?

1 个答案:

答案 0 :(得分:1)

如果您正在使用现有的线程池实现 - concurrent.futures.ThreadPoolExecutormultiprocessing.dummy.Pool或您在PyPI或其他地方找到的任何内容 - 这将全部自动处理。

如果你想自己手动构建一些东西,问题就没那么有意义了。您需要跟踪线程,手动启动它们,并知道它们何时完成,因此您始终知道活动线程的数量。

如果您想要查看示例代码,the source to concurrent.futures非常易读且非常简短。从快速查看中可以看出,每次提交新作业时都会调用_adjust_thread_count,该函数只会检查是否len(self._threads) < self.max_workers并在需要时创建新线程。