我想为某个任务创建一个线程池。我想随时维护一定数量的线程。我怎样才能做到这一点 ?如何随时检查活动线程的数量并在其计数小于指定计数时创建新线程?
问问题
687 次
1 回答
1
如果您正在使用现有的线程池实现—<a href="http://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor" rel="nofollow"> concurrent.futures.ThreadPoolExecutor
, multiprocessing.dummy.Pool
, 或任何您发现的在 PyPI 或其他地方——这一切都会被自动处理。
如果您想自己手动构建某些东西,那么这个问题实际上没有意义。您将需要跟踪您的线程,手动启动它们,并知道它们何时完成,因此您始终知道活动线程的数量。
如果您想查看示例代码,源代码concurrent.futures
非常易读,而且非常简短。从快速浏览中可以看出,_adjust_thread_count
每次提交新作业时它都会调用,并且该函数只是检查是否len(self._threads) < self.max_workers
并在需要时创建一个新线程。
于 2013-08-05T20:42:44.613 回答