python多进程multiprocessing模块中Queue的妙用

  最近的部门RPA项目中,小爬为了提升爬虫性能,使用了Python中的多进程(multiprocessing)技术,里面需要用到进程锁Lock,用到进程池Pool,同时利用map方法一次构造多个process。Multiprocessing的使用确实能显著提升爬虫速度,不过程序交由用户使用时,缺乏一个好的GUI窗口来显示爬虫进度。之前的文章中使用了Chrome浏览器来渲染js脚本生成了进度条。但是鉴于Chrome在运行时十分吃内存资源,用Chrome只是生成一个进度条难免有些“大材小用”,所以,小爬决定使用Tkinter库来制作进度条,进而摆脱对chrome浏览器的依赖。

  要制作进度条,就得有计数器存储爬虫的总数,当前的爬取数甚至是当前的耗费时间等作为存储变量。考虑到各个进程之间无法直接通信,这个当前量和总量如何得到,就只能借助multiprocessing中的Queue类了。根据官方文档,multiprocessing中的Queue 类几乎完美克隆了Queue.Queue中的功能,但是它是专为多进程间的通信单独设计的。

 

透过一个简单的例子看下Queue是如何运用的:

from multiprocessing import
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值