從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”有爬蟲入門教程可以指導你。


分享到:


相關文章: