python内循环只执行一次_Python的多线程和多进程——从一个爬虫任务谈起

本文通过对比单线程和多线程、多进程在爬虫任务中的性能,阐述Python中多线程和多进程的使用场景。多线程适合io绑定任务,能有效利用网络延迟时间;多进程适用于CPU绑定任务,尤其在有多个CPU核心时,能充分利用计算资源。Python的全局解释器锁(GIL)限制了多线程在CPU密集型任务中的表现,而多处理通过避免GIL,实现并发执行。
摘要由CSDN通过智能技术生成

本文的目的是解释为什么在Python中需要多线程和多处理,何时使用多线程和多进程,以及它们能怎样提高我们程序的性能。

假设我们的量化模型需要从多个网站爬取一些数据,我们将要对比用单线程和多线程的方法有何性能上的差别。

1,单线程,单进程

在单线程、单进程中,我们将用for循环读取一个url列表。

如您所见,我们只是使用for循环一个接一个地遍历url并读取响应。我们可以使用IPython的%%time函数对消耗的时间进行统计,这个读取13个网页的任务大约需要12秒钟。

4179789f3a9a9797a5856d1ba50f4c2e.png

Python学习交流群:1004391443

2,多线程

现在我们改进一下这个程序,我们可以将读取url的任务分配给多个线程来完成,而不是只让一个线程去逐一读取。

比如4个线程:

37a47778624d6e10b498c7b464f8fd30.png

8个线程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值