我正在更新一些看起来像这样的现有代码:
for i in list
thread.start_new_thread(main, (i[0],i[1],i[2],2))
这会导致为列表中的每个项目创建线程,但在创建所有线程之前不会执行。我想以小组的形式执行线程,或者让它们在创建后直接执行。
(这里有很多关于python线程的讨论,如果我错过了已经被问到的这类问题,很抱歉......)
我正在更新一些看起来像这样的现有代码:
for i in list
thread.start_new_thread(main, (i[0],i[1],i[2],2))
这会导致为列表中的每个项目创建线程,但在创建所有线程之前不会执行。我想以小组的形式执行线程,或者让它们在创建后直接执行。
(这里有很多关于python线程的讨论,如果我错过了已经被问到的这类问题,很抱歉......)
您可能会发现该concurrent.futures
模块很有用。它也可用于名称为 的 Python 2 futures
。例如,要同时main
为每个项目调用一个函数MY_LIST
,但最多使用 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)