当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。
import multiprocessing
import os
import time
def copy(index):
print('当前进程的编号:',os.getpid())
print(index)
time.sleep(1)
if __name__ == '__main__':
pool=multiprocessing.Pool(3)
# 进程个数
for i in range(10):
pool.apply_async(copy,args=(i,))
# 非阻塞方式调用
pool.close() # 关闭池子,不在接收数据
pool.join()
# join的作用: 主进程阻塞,等待子进程的退出