from multiprocessing import Pool
import os
import time
# 定义一个函数,将在进程池中执行
def task(name):
print(f"任务 {name} 开始, 进程ID: {os.getpid()}")
time.sleep(2) # 模拟任务耗时
print(f"任务 {name} 结束")
return f"任务 {name} 完成"
if __name__ == "__main__":
# 创建一个包含4个进程的进程池
pool = Pool(processes=4)
# 使用进程池异步执行多个任务
results = []
for i in range(5):
result = pool.apply_async(task, args=(f"任务{i+1}",))
results.append(result)
# 关闭进程池,不再接受新的任务
pool.close()
# 等待所有任务完成
pool.join()
# 获取任务的结果
for result in results:
print(result.get())
multiprocessing 模块提供了创建和管理多进程的功能。我们使用 Pool 类来创建一个进程池。task 函数模拟了一个耗时的任务,并打印当前进程的 ID。Pool(processes=4) 创建了一个包含 4 个进程的进程池。apply_async 方法将任务异步提交到进程池中执行。args 参数用于传递给任务函数的参数。pool.close() 表示不再接受新的任务。pool.join() 等待所有任务完成。result.get() 获取每个任务的返回值并打印。这个示例展示了如何使用 Python 的 multiprocessing.Pool 来并发执行多个任务。
上一篇:python keyerror
下一篇:python数组添加元素
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站