【发布时间】:2014-03-30 11:49:24
【问题描述】:
我需要同时运行一定数量的线程或进程,直到它们全部完成。我如何在 Python 2.6 中做到这一点。 (注意:我相信 Python 3.0 有 ThreadPoolExecutor 但这对我没有帮助,因为我们使用的是 2.6)。
我尝试了以下方法:
pool = multiprocessing.Pool(2)
try:
for table_name in table_list:
pool.apply_async(Processor(table_name, self.type,
self.properties).exec())
except KeyboardInterrupt:
pool.terminate()
else:
pool.close()
pool.join()
但它按顺序处理每个表。我想要的是,如果有 10 个表并且池大小为 5,那么它应该首先启动 5 个线程。一旦其中一个完成,它应该选择下一个,然后是下一个,依此类推,直到所有这些都处理完毕。
如何在 Python 2.6 中做到这一点?
【问题讨论】:
标签: python multithreading multiprocessing python-2.6