从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

首先我们还是先来了解一下多线程的相关知识。

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

接下来我们再使用线程的执行时间。

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

这是什么意思呢?我们先来看下下面这个示例:

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

下面我来详细了解一下多线程的用法

首先我们需要知道,在Python3中常用的多线程包为threading,接下来我们所讲的方法也是这个包中的方法。

1.构造线程

从0开始学爬虫之多线程基础篇,介绍及用法

继承Thread类,并重写run()

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

2.其他实例方法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

3.锁,可重入锁

从0开始学爬虫之多线程基础篇,介绍及用法

从0开始学爬虫之多线程基础篇,介绍及用法

有锁时,肯定是交替执行加减算法,但最后结果肯定还是可以为0。

从0开始学爬虫之多线程基础篇,介绍及用法

注释锁后,再来看下结果。

从0开始学爬虫之多线程基础篇,介绍及用法

再多执行几次后,会发现结束运算后的sub值每次都不一样,这其实就是因为共享变量,线程之间产生了混乱,导致sub的值无法确定。

结束

欢迎讨论,有什么不对的、不足的地方欢迎大佬指点。最后如果有一些小白没有看懂,可以私信我回复“02”有爬虫入门教程可以指导你。


分享到:


相關文章: