Python3多线程爬虫讲解
多线程概述
多线程使得程序内部可以分出多个线程来做多件事情,充分利用CPU空闲时间,提升处理效率。python提供了两个模块来实现多线程thread和threading,thread有一些缺点,在threading得到了弥补。并且在Python3中废弃了thread模块,保留了更强大的threading模块。
使用场景
在python的原始解释器CPython中存在着GIL(GlobalInterpreterLock,全局解释器锁),因此在解释执行python代码时,会产生互斥锁来限制线程对共享资源的访问,直到解释器遇到I/O操作或者操作次数达到一定数目时才会释放GIL。所以,虽然CPython的线程库直接封装了系统的原生线程,但CPython整体作为一个进程,同一时间只会有一个获得GIL的线程在跑,其他线程则处于等待状态。这就造成了即使在多核CPU中,多线程也只是做着分时切换而已。
如果你的程序是CPU密集型,多个线程的代码很有可能是线性执行的。所以这种情况下多线程是鸡肋,效率可能还不如单线程因为有上下文切换开销。但是如果你的代码是IO密集型,涉及到网络、磁盘IO的任务都是IO密集型任务,多线程可以明显提高效率,例如多线程爬虫,多线程文件处理等等
以上内容为大家介绍了Python3多线程爬虫讲解,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/

猜你喜欢LIKE
相关推荐HOT
更多>>
对python异常的理解
1、什么是异常 异常即“与正常情况不同”,何为正常?正常便是解释器在解释代码时,我们所编写的代码符合解释器定义的规则,即为正常,当解释...详情>>
2023-11-05 23:38:01
怎么自学Python?为什么自学学不进去?
对于编程语言、IT行业来说,自学本身就具有一定的难度,不少人卡在了入门这一阶段,也许是对编程兴趣不够高,或者是自控力不够强等原因,那为什...详情>>
2023-11-05 20:58:29
学习Python有什么优势吗?
Python的快速发展引起了很多人的注意,尤其是近几年Python在人工智能领域的发展,很多人都具体想知道学习Python有哪些优势?是否零基础也可以学?...详情>>
2023-11-05 18:13:14
linux修改配置命令?
修改SELINUX配置文件命令方法永久方法 _ 需要重启服务器\x0d\x0a修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。关闭SE...详情>>
2023-10-31 05:12:30热门推荐
技术干货






