Python系列之Python并发执行实现方法
在Python中,可以使用concurrent.futures
模块来实现并发执行任务。以下是一个简单的例子,展示了如何使用ThreadPoolExecutor
来并发执行任务:
import concurrent.futures
# 定义一个简单的函数,作为并发执行的任务
def task(n):
print(f"Task {n} is running")
# 模拟任务执行,通过sleep进行延时
import time
time.sleep(2)
return f"Task {n} result"
# 使用ThreadPoolExecutor并发执行多个任务
def main():
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
# 提交任务到线程池中
future_to_task = {executor.submit(task, i): i for i in range(5)}
# 等待所有任务完成
for future in concurrent.futures.as_completed(future_to_task):
task_number = future_to_task[future]
try:
data = future.result()
print(f"Task {task_number} result: {data}")
except Exception as exc:
print(f"Task {task_number} generated an exception: {exc}")
# 运行主函数
if __name__ == "__main__":
main()
这段代码定义了一个task
函数,它模拟了一个简单的计算任务,并且使用concurrent.futures.ThreadPoolExecutor
来并发执行这个任务5次。通过concurrent.futures.as_completed
,我们可以等待所有任务完成后再逐个处理结果。
评论已关闭