码迷,mamicode.com
首页 > 系统相关 > 详细

24、进程池

时间:2017-08-13 22:19:09      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:手动   子进程   font   roc   动态   工作量   async   任务   非阻塞   

什么是进程池呢?

  当一个主进程执行过程中需要创建子进程来完成多个任务时候,那么如果运用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、进程池

标签:手动   子进程   font   roc   动态   工作量   async   任务   非阻塞   

原文地址:http://www.cnblogs.com/lvhonglei-python/p/7354906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!