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

在Linux系统下对HTTP IO密集型爬虫任务进行测试,对比Python多线程和多进程的性能。结果显示,多线程比多进程快4 - 6倍,表明Python多线程对IO密集型程序更具优势。同时提到可采用进程 + 线程或进程 + 协程利用多核CPU,还测试了协程方式,速度更快。

在测试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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值