进程池
实例如下:
import multiprocessing
import time
# 复制任务
def copy_work():
print("正在复制中..", multiprocessing.current_process().pid)
time.sleep(0.001)
# 进程池: 池子里面放的都是进程,进程的创建有进程池负责,执行任务的时候循环利用指定进程大小个数执行对应的任务
if __name__ == '__main__':
# 创建进程池 3: 进程池中进程的最大个数
pool = multiprocessing.Pool(3)
# 模拟大批量的复制任务,让进程池去执行
for i in range(10):
# apply表示同步执行,表示一个任务执行完成另外一个任务才能执行
# pool.apply(copy_work)
# apply_async:表示异步执行,异步是不会等待其它任务执行完成以后再去执行,多个任务一起执行
pool.apply_async(copy_work)
# 关闭进程池,不再接收其它任务
pool.close()
# 主进程等待进程池执行完成以后再退出
pool.join()