Pool
进程池优点
- 控制并发的进程数,自动完成任务交替执行
- 节省频繁创建进程资源浪费
from multiprocessing import Pool
import time
import os
# 最大并发执行任务数
pool = Pool(4)
def worker(num):
print("Number: {} PID: {}".format(num, os.getpid()))
time.sleep(1)
for i in range(10):
# 非阻塞式向进程池中添加任务,如果进程池中进程都在执行任务,则任务也会被添加成功
# 不过不会立即执行,而是等待进程池中进程执行完手头任务,然后自动载入新任务
pool.apply_async(worker, (i,))
# 关闭进程池,不再接收新任务
pool.close()
# 等待进程池中的进程将所有任务执行完成后才结束
pool.join()