位置: 编程技术 - 正文

Python 多进程并发操作中进程池Pool的实例(python多进程并发http请求)

编辑:rootadmin

推荐整理分享Python 多进程并发操作中进程池Pool的实例(python多进程并发http请求),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 多进程并发,python多进程并行同一父类下的多个子类,python 多进程并发,python 多进程并发,python 多进程并发执行,python多进程并发代码,python多进程并行,Python 多进程并发 内存不足,内容如对您有帮助,希望把文章链接给更多的朋友!

在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,几个还好,但如果是上百个,上千个目标,手动的去限制进程数量却又太过繁琐,这时候进程池Pool发挥作用的时候就到了。

Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来它。这里有一个简单的例子:

先创建容量为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可以很方便的同时自动处理几百或者上千个并行操作,脚本的复杂性也大大降低。

——————————————————————————————————

Python多进程并发(multiprocessing)

由于Python设计的限制(我说的是咱们常用的CPython)。最多只能用满1个CPU核心。

Python提供了非常好用的多进程包multiprocessing,你只需要定义一个函数,Python会替你完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。

1、新建单一进程

如果我们新建少量进程,可以如下:

2、使用进程池

是的,你没有看错,不是线程池。它可以让你跑满多核CPU,而且使用方法非常简单。

Python 多进程并发操作中进程池Pool的实例(python多进程并发http请求)

注意要用apply_async,如果落下async,就变成阻塞版本了。

processes=4是最多并发进程数量。

3、使用Pool,并需要关注结果

更多的时候,我们不仅需要多进程执行,还需要关注每个进程的执行结果,如下:

..更新

根据网友评论中的反馈,在Windows下运行有可能崩溃(开启了一大堆新窗口、进程),可以通过如下调用来解决:

简易worker multiprocessing.Pool

多任务模型设计是一个比较复杂的逻辑,但是python对于多任务的处理却有种种方便的类库,不需要过多的纠结进程/线程间的操作细节。比如multiprocessing.Pool就是其中之一。

官方给的范例也很简单。

并未做太多的详细解释。正好我手头有一段代码,需要请求几百个url,解析html页面获取一些信息,单线程for循环效率极低,因此看到了这个模块,想用这个实现多任务分析,参考代码如下:

确实比以前单线程for循环url_list列表,一个个请求analyse_url要快得多,但是带来的问题就是一旦pool.map没执行完就ctrl-c中断程序,程序就会异常,永远无法退出,参考stackoverflow的这个帖子,修改为以下代码:

至此问题完美解决。

以上这篇Python 多进程并发操作中进程池Pool的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

Python安装Numpy和matplotlib的方法(推荐) Python安装Numpy和matplotlib的方法(推荐)注意:下载的库名中cp代表python2.7,其它同理。在shell中输入importpip;print(pip.peptags.get_supported())可以获取到pip支持的

python3.0 模拟用户登录,三次错误锁定的实例 python3.0模拟用户登录,三次错误锁定的实例实例如下所示:#-*-coding:utf-8-*-#需求模拟用户登录,超过三次错误锁定不允许登陆count=0#realnamepasswdReal_Username="t

利用Python-iGraph如何绘制贴吧/微博的好友关系图详解 前言最近工作中遇到了一些需求,想通过图形化的方式显示社交网络特定用户的好友关系,上网找了一下这方面的图形库有networkx、graphviz等,找了好久

标签: python多进程并发http请求

本文链接地址:https://www.jiuchutong.com/biancheng/372146.html 转载请保留说明!

上一篇:python 3.0 模拟用户登录功能并实现三次错误锁定(python编程模拟)

下一篇:Python安装Numpy和matplotlib的方法(推荐)(python安装numpy和matplotlib)

  • 公司租的库房应该计入什么科目
  • 加班费计入个税吗
  • 小规模计提税金及附加会计分录怎么写
  • 企业如何代扣代缴劳务报酬所得税
  • 财务刷卡手续费怎么处理
  • 哪些科目会影响损益
  • 外汇储备保值增值
  • 小规模企业所得税多少
  • 其他应收款利息收入会计分录怎么写
  • 驾驶员行车补贴开什么发票
  • 个税申报系统跟工资表累计扣除数不一致怎么办
  • 客户回款扣除的手续费会计分录怎么做?
  • 货物运输代理服务税率
  • 公司社保公积金最晚缴费时间段
  • 印花税是按照含税收入乘以印花税税率吗
  • 年终奖个税筹划临界点
  • 提成工资可以扣发吗?
  • 怎么做销售二手车
  • 申报清单怎么写
  • 土地增值税成本扣除项目
  • 税控盘第一次使用
  • 预付卡销售加油充值款可以报销吗
  • 计提资产减值损失账务处理
  • 个体工商户申报流程图
  • 如何在虚拟机上下载软件
  • 公司净资产怎么算出来的
  • 筹建期固定资产是否要折旧
  • 王者荣耀中马可波罗的一技能和大招
  • 企业收到工程款会计分录
  • 冲减管理费用的情况
  • 年度汇算清缴收入应该填什么
  • 材料成本差异如何理解
  • 残疾人就业保障金怎么申报
  • 摊余成本计入哪个科目
  • 伦德格伦
  • 以前年度应当取得而未取得的发票
  • 工地事故赔付
  • 踩雷日记:Pytorch mmcv-full简易安装
  • yii框架运行原理
  • 微信账单可以打清单吗
  • Chrome谷歌浏览器网页
  • 【超用心整理】Markdown常用语法介绍,看这一个就够了
  • 费用类和成本类有哪些
  • Sqlite 常用函数 推荐
  • 专利费用计入什么会计科目
  • 普票 销项
  • 工程咨询属于什么服务业
  • 企业注销库存怎么处理
  • 免税销售额和本期免税额
  • 在建工程和预付账款怎么转化
  • 个体户是什么样的
  • 预期信用损失率的确认依据和过程
  • 买车进项税
  • 中级会计报名必须用电脑吗
  • 销售退回怎么办
  • 普通发票税费会计分录
  • 银行账户收费开户流程
  • 视同销售的账务处理如何做?
  • 自产产品发给职工做福利的会计处理
  • 盘亏机器设备
  • 印花税新政策
  • 计入税金及附加借方的内容
  • 发票作废怎么写说明
  • 勘探费用会计分录
  • 财务会计的基本概念
  • 摊余成本计入哪里
  • 并购成本计算公式
  • 税务会计应该设什么岗位
  • linux系统中用户密码保存在什么文件中
  • linux系统中安装软件
  • windows10总是出现打印机错误
  • linux如何管理文件
  • 怎样关闭android系统的内存不足的系统通知
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • opengl sphere
  • AJAX和jQuery动态加载数据的实现方法
  • three.js入门教程(合集)
  • 利用html css javascript做一个网页
  • android 启动器 设置
  • 税务如何稽查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设