目标:
1:知道什么是进程池
一:什么是进程池?
进程池概念:当创建大量进程的时候,multiprocess的Process()方法就太过麻烦,我们需要采用multiprocess内的Pool()来创建进程池,用来保存大量进程,即进程池是进程的容器,我们可以用它创建指定数量的进程
进程序功能:管理与维护进程池
创建进程池语法:pool_obj = multiprocess.Pool( 3 ) 表示最大创建一个内含三个进程的进程池
注意事项:multiprocess.Pool( 3 )表示最大可以创建三个进程,在只有一个任务的时候,只需创建一个进程完成任务即可
不需要把三个进程都创建出来完成任务
图示:
进程池工作方式(同步与异步):
同步工作方式
概念:进程池内的进程执行函数任务时,同一时间只允许一个进程工作
函数方法:进程池对象 . apply(函数任务,(函数参数1,参数2…….)):以同步的方式执行任务
注意事项:同步的方法给任务函数传递参数只有以元组的方式进行传递
图示:
快速代码体验
异步工作方式:
概念:进程池内的进程同一时间可以一起工作
函数方法:进程池对象 . apply_async(函数参数1,参数2….)
注意事项:
1:异步的方法给任务函数传递参数只有以元组的方式进行传递
2:在使用进程池异步工作方式时,一定要将添加完任务的线程池执行close()操作,表示不再接受新的任务,否则的话会造成进程池不运行!
3:采用进程池异步工作方式,主进程将不再等待进程池执行结束后退出!!为了避免数据在主进程退出时销毁,要对进程池采用 join()方法!
**
图示:
快速代码体验