win python 判断 所有 子进程 结束_python 多进程 进程池子进程结束怎么获取
匿名用户
1级
2016-10-26 回答
在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,10几个还好,但如果是上百个,上千个目标,手动的去限制进程数量却又太过繁琐,这时候进程池Pool发挥作用的时候就到了。
Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来它。这里有一个简单的例子:
#!/usr/bin/env python
#coding=utf-8
"""
Author: Squall
Last modified: 2011-10-18 16:50
Filename: pool.py
Description: a simple sample for pool class
"""
from multiprocessing import Pool
from time import sleep
def f(x):
for i in range(10):
print '%s --- %s ' % (i, x)
sleep(1)
def main():
pool = Pool(processes=3) # set the processes max number 3
for i in range(11,20):
result = pool.apply_async(f, (i,))
pool.close()
pool.join()
if result.successful():
print 'successful'
if __name__ == "__main__":
main()
先创建容量为3的进程池,然后将f(i)依次传递给它,运行脚本后利用ps aux | grep pool.py查看进程情况,会发现最多只会有三个进程执行。pool.apply_async()用来向进程池提交目标请求,pool.join()是用来等待进程池中的worker进程执行完毕,防止主进程在worker进程结束前结束。但必pool.join()必须使用在pool.close()或者pool.terminate()之后。其中close()跟terminate()的区别在于close()会等待池中的worker进程执行结束再关闭pool,而terminate()则是直接关闭。result.successful()表示整个调用执行的状态,如果还有worker没有执行完,则会抛出AssertionError异常。
利用multiprocessing下的Pool可以很方便的同时自动处理几百或者上千个并行操作,脚本的复杂性也大大降低。
win python 判断 所有 子进程 结束_python 多进程 进程池子进程结束怎么获取相关推荐
- win python 判断 所有 子进程 结束_python 多进程如何终止或重启子进程?
这里有个完整的实例 MD5值重复文件多进程检查工具 测试过程中经常发现MD5值相同的图片.之前没有用并发,检查过程经常需要一个小时,现在改成多进程.一般3分钟以内可以完成处理(48核). 此模式也是自 ...
- python判断素数的函数_Python素数prime函数练习_Python源码实操
Python素数prime函数练习_Python源码实操 素数prime函数练习 1) 写一个函数isprime(x) 判断x是否为素数,如果是素数,返回True,否则返回False def ispr ...
- python进程池调用实例方法_Python 多进程并发操作中进程池Pool的实例
在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间.当被操作对象数目不大时,可以直接利用multiprocessing中的Process ...
- python多进程间通信_Python 多进程编程之 进程间的通信(Queue)
Python 多进程编程之 进程间的通信(Queue) 1,进程间通信 Process有时是需要通信的,操作系统提供了很多机制来实现进程之间的通信,而Queue就是其中的一个方法 ----这是操作系统 ...
- python判断是不是文件夹_Python判断文件和文件夹是否存在的方法
一.python判断文件和文件夹是否存在.创建文件夹 复制代码代码如下: >>> import os >>> os.path.exists("d:/ass ...
- python判断今天周几_Python如何根据日期判断周几
python作为现在很流行的一门语言,学好python是很有必要的,下面是根据日期判断周几的个人总结的一些方法,可供参考. Python如何根据日期判断周几 Python判断周几主要使用了time, ...
- python判断密码是否正确_python密码判断是否符合要求的方法
python中可以使用正则表达式来判断密码字符串是否符合要求.Python的re 模块提供字符正则匹配检查,功能强大,写法高效简洁,因此在工作中会被经常使用. python判断密码是否符合要求示例: ...
- python判断正负的函数_python判断正负数方式
我就废话不多说了,大家还是直接看代码吧! a1 = raw_input("please input a number") a = int(a1) if(a!=0): if(a &g ...
- python判断字符类型编程_python判断字符类型怎么做
设str为字符串 str.isalnum() 所有字符都是数字或字母(推荐学习:Python视频教程) str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 st ...
最新文章
- xp 5gt ***
- [Shell 脚本] 备份数据库文件至OSS服务(纯shell脚本无sdk)
- 软定时器的启动与停止
- boost::type_erasure::equality_comparable相关的测试程序
- 政府安全资讯精选 2017年第十八期 工信部近三年将466个“问题APP”纳入黑名单;阿里云成为全球唯一完成德国C5云安全基础附加标准审计云服务商...
- [30期] 第一个项目总结-—数码黑店在这一年开张
- java ajax动态加载数据_java实现的highcharts与ajax结合动态实时获取数据更新图表
- php 电梯程序设计,西门子300PLC编写三层电梯程序的设计与模拟
- 【华为机试真题 JAVA】最大股票收益-100
- hping3对某网站发起ddos攻击
- Linux下基于Openstack安装部署私有云
- vs2013调试技巧及快捷键
- opencv 二维码定位
- 点击图片显示图片放大的弹窗
- 快速拷贝文件经验及工具分享 - 天缘博客
- FPGA基于XDMA实现PCIE X4通信方案 提供工程源码和QT上位机程序和技术支持
- 英语四级题目:做的时间分配
- linux tar包分隔 tar split
- Halcon创建模板并进行模板匹配
- 【MySQL】实验五 子查询