【python多线程多进程协程】threading库与multiprocess库速度场景分析比较-实操【持续更新】

在测试http io密集型爬虫 任务的时候。
在linux 开了单进程多线程 60个线程 用的 threading库
多进程开了10个进程 用的multiprocess库
在这个情况下,见下图,带multip的是多进程程序log
不带的是多线程,多线程比多进程快了4-6倍

由此可见,python多线程对于io密集型的程序更有优势。
但是要注意的是python 多线程由于GIL锁的存在,同一个程序只能同时运行一个进程,而实际就是同时运行了一个线程,但是由于阻塞抢占的存在比多进程傻等要好一些。
如果想要好好利用多核cpu, 建议使用进程+线程或者进程+协程的方式。

我也打算进一步修改程序,进行测试。
因为这个任务要求一天完成百万级数据的处理,等任务完成后,会进一步更新

在这里插入图片描述
最新使用aiohttp库,异步请求,协程方式,比之前
开了150个job一组,10个进程,7.5小时跑完了。500000/(150107.5)=
比之前单进程多线程60个48h 快 500000/( 60*48)
比10进程快。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值