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()

results matching ""

    No results matching ""