以下是一个使用Python并行处理任务的示例代码,其中每个任务都需要比单个任务长的时间。
import time
from concurrent.futures import ThreadPoolExecutor, as_completed
def process_task(task):
print(f"开始处理任务 {task}")
# 模拟任务所需时间
time.sleep(3)
print(f"完成任务 {task}")
def parallel_process(tasks):
with ThreadPoolExecutor() as executor:
# 提交任务到线程池
futures = [executor.submit(process_task, task) for task in tasks]
# 获取已完成的任务
for future in as_completed(futures):
try:
result = future.result()
except Exception as e:
print(f"处理任务时发生错误: {e}")
if __name__ == "__main__":
tasks = [1, 2, 3, 4, 5]
parallel_process(tasks)
在上述代码中,我们使用了ThreadPoolExecutor
来创建一个线程池,并使用submit
方法将每个任务提交到线程池。每个任务都通过process_task
函数来处理,其中使用time.sleep()
模拟任务所需的时间。
通过并行处理任务,可以同时处理多个任务,从而缩短总体处理时间。请注意,由于线程池中的线程是有限的,因此如果任务数量很大,可能需要考虑使用ProcessPoolExecutor
来使用多个进程进行并行处理。
上一篇:并行任务 vs 多进程
下一篇:并行任务运行,使用C#参数