Python 如何使用threadpoolexecutor在参数列表上运行多个函数?
我想使用Python 如何使用threadpoolexecutor在参数列表上运行多个函数?,python,multithreading,threadpool,Python,Multithreading,Threadpool,我想使用ThreadPoolExecutor在参数列表上运行多个函数 当我使用下面的代码时,函数会使用相同的参数重复,代码会无限期地运行 thread_count = 0 with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as executor: for i, itinerary_dict in enumerate(itinerary_list): results = [] fo
ThreadPoolExecutor
在参数列表上运行多个函数
当我使用下面的代码时,函数会使用相同的参数重复,代码会无限期地运行
thread_count = 0
with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as executor:
for i, itinerary_dict in enumerate(itinerary_list):
results = []
for _ in range(
parser.getboolean('other', 'goibiboFlag')
+ parser.getboolean('other', 'mmtFlag')
+ parser.getboolean('other', 'emtFlag')
):
if parser.getboolean('other', 'goibiboFlag'):
if (
itinerary_dict['WEBSITE'] == 'ALL'
or itinerary_dict['WEBSITE'].lower().strip() == 'goibibo'
):
itinerary_dict['t_num'] = thread_count
results.append(
executor.submit(
goibibo.get_route_data, itinerary_dict, params
)
)
thread_count += 1
if parser.getboolean('other', 'mmtFlag'):
if (
itinerary_dict['WEBSITE'] == 'ALL'
or itinerary_dict['WEBSITE'].lower().strip() == 'mmt'
):
itinerary_dict['t_num'] = thread_count
results.append(
executor.submit(
mmt.get_route_data, itinerary_dict, params
)
)
thread_count += 1
if parser.getboolean('other', 'emtFlag'):
if (
itinerary_dict['WEBSITE'] == 'ALL'
or itinerary_dict['WEBSITE'].lower().strip() == 'emt'
):
itinerary_dict['t_num'] = thread_count
results.append(
executor.submit(
emt.get_route_data, itinerary_dict, params
)
)
thread_count += 1
for f in concurrent.futures.as_completed(results):
error_logger.info(f)
范围内(…)的
的用途是什么?您正在将布尔值传递给一个接受整数的方法。@flakes我希望每个布尔值都转换为1。这可能解释了重复数据的原因。如果每个布尔值都为true,则将运行每个内部执行器。每个提交语句三次。考虑一下,如果你真的需要这个范围检查!@弗雷克斯收到了,谢谢。现在我觉得问这个问题很愚蠢。我们都去过!没有愚蠢的问题。编码很难!范围内(…)
的的用途是什么?您正在将布尔值传递给一个接受整数的方法。@flakes我希望每个布尔值都转换为1。这可能解释了重复数据的原因。如果每个布尔值都为true,则将运行每个内部执行器。每个提交语句三次。考虑一下,如果你真的需要这个范围检查!@弗雷克斯收到了,谢谢。现在我觉得问这个问题很愚蠢。我们都去过!没有愚蠢的问题。编码很难!