首页 > 代码库 > 24、进程池
24、进程池
什么是进程池呢?
当一个主进程执行过程中需要创建子进程来完成多个任务时候,那么如果运用fork来进行创建然后再回收,
在创建在回收,降低主进程性能。所以事先创建进程池。
当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法
from multiprocessing import Pool
import os
def work():
print os.getpid()
print os.getppid()
po = Pool(3)
for i in range(3):
po.apply_async(work,())
#非阻塞方式,就是当执行到这里,主进程for循环执行完了以后
# 不管子进程是否执行,那么还会继续执行下面的代码
#apply()阻塞方式
#关闭进程池,但资源并没有释放
po.close()
# 回收进程池资源 主进程阻塞
po.join()
24、进程池
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。