我想为某个任务创建一个线程池。我希望随时保持一定数量的线程。 我怎样才能做到这一点 ?如何在任何时候检查活动线程的数量,如果计数小于指定的计数,则创建新线程?
答案 0 :(得分:1)
如果您正在使用现有的线程池实现 - concurrent.futures.ThreadPoolExecutor
,multiprocessing.dummy.Pool
或您在PyPI或其他地方找到的任何内容 - 这将全部自动处理。
如果你想自己手动构建一些东西,问题就没那么有意义了。您需要跟踪线程,手动启动它们,并知道它们何时完成,因此您始终知道活动线程的数量。
如果您想要查看示例代码,the source to concurrent.futures
非常易读且非常简短。从快速查看中可以看出,每次提交新作业时都会调用_adjust_thread_count
,该函数只会检查是否len(self._threads) < self.max_workers
并在需要时创建新线程。