Python17 多进程multiprocessing
Python 17中的multiprocessing
模块提供了一种轻松创建多个进程的方法。以下是一个使用multiprocessing
模块创建多个进程的简单例子:
import multiprocessing
import time
def worker(num):
print(f"Worker {num} is running...")
time.sleep(2)
print(f"Worker {num} is done.")
if __name__ == "__main__":
# 创建进程池
with multiprocessing.Pool(processes=3) as pool:
# 向进程池添加任务
pool.apply_async(worker, (1,))
pool.apply_async(worker, (2,))
pool.apply_async(worker, (3,))
print("All workers are done.")
在这个例子中,我们定义了一个worker
函数,这个函数将作为多个进程的任务执行。我们使用multiprocessing.Pool
来创建一个进程池,并且指定进程池中的进程数量(这里是3)。然后我们并行地向进程池添加任务,每个任务是对worker
函数的调用,并传入一个唯一的数字作为参数。
使用pool.apply_async()
方法来添加任务,它是异步的,这意味着它会立即返回,而真正的任务执行会在后台进行。当所有任务完成后,进程池会自动关闭。
请注意,if __name__ == "__main__":
这行代码是必需的,因为在Windows平台上,Python要求在子进程中创建代码只能在主进程中运行。
评论已关闭