我正在更新一些现有代码,如下所示:
for i in list
thread.start_new_thread(main, (i[0],i[1],i[2],2))
这会导致为列表中的每个项目创建线程,但在创建所有线程之前不会执行。我想以小组的形式执行线程,或者让它们在创建后直接执行。
(这里有很多 python 线程讨论,很抱歉,如果我错过了已经被问到的这类问题......)
最佳答案
您可能会找到 concurrent.futures
模块有用。它也可用于 Python 2,名称为 futures
.例如,要同时为 MY_LIST
上的每个项目调用函数 main
,但最多有 5 个线程,您可以这样写:
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=5) as executor:
for result in executor.map(main, MY_LIST):
# Do something with result
print(result)
关于python - 在 python 中批处理线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670513/