Python使用multiprocessing实现多进程
import multiprocessing
import time
def worker(num):
"""
定义一个函数,用于在新进程中运行。
这个函数接收一个参数并打印一条消息,然后进行一些计算。
"""
print(f"Worker {num} starting...")
time.sleep(2)
print(f"Worker {num} finished...")
if __name__ == "__main__":
# 定义要运行的进程数
num_processes = 4
# 创建进程池
pool = multiprocessing.Pool(processes=num_processes)
# 使用池中的每个进程运行worker函数,参数从0到num_processes-1
for i in range(num_processes):
pool.apply_async(worker, args=(i,))
# 关闭进程池,不再添加新的任务
pool.close()
# 等待所有的进程完成
pool.join()
print("All processes finished")
这段代码定义了一个worker
函数,然后在主程序中创建了一个进程池,并将worker
函数作为任务在多个进程中并发执行。通过pool.apply_async
方法,我们传递了函数和参数,并启动了进程。最后,我们调用pool.close()
来关闭进程池,防止更多的任务被提交到池中。pool.join()
会等待所有进程真正完成后再继续执行。
评论已关闭