溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python3爬蟲中多線程有什么優勢

發布時間:2020-11-24 13:41:59 來源:億速云 閱讀:165 作者:小新 欄目:編程語言

這篇文章主要介紹python3爬蟲中多線程有什么優勢,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

總結起來,使用多線程編程具有如下幾個優點:

  • 進程之間不能共享內存,但線程之間共享內存非常容易。

  • 操作系統在創建進程時,需要為該進程重新分配系統資源,但創建線程的代價則小得多。因此,使用多線程來實現多任務并發執行比使用多進程的效率高。

  • Python 語言內置了多線程功能支持,而不是單純地作為底層操作系統的調度方式,從而簡化了 Python 的多線程編程。

 

threading模塊

普通創建方式

import threading
import time
 
def run(n):
    print("task", n)
    time.sleep(1)
    print('2s')
    time.sleep(1)
    print('1s')
    time.sleep(1)
    print('0s')
    time.sleep(1)
 
if __name__ == '__main__':
    t1 = threading.Thread(target=run, args=("t1",))
    t2 = threading.Thread(target=run, args=("t2",))
    t1.start()
    t2.start()
 
----------------------------------
 
>>> task t1
>>> task t2
>>> 2s
>>> 2s
>>> 1s
>>> 1s
>>> 0s
>>> 0s

守護線程

我們看下面這個例子,這里使用setDaemon(True)把所有的子線程都變成了主線程的守護線程,因此當主進程結束后,子線程也會隨之結束。所以當主線程結束后,整個程序就退出了。

import threading
import time
 
def run(n):
    print("task", n)
    time.sleep(1)       #此時子線程停1s
    print('3')
    time.sleep(1)
    print('2')
    time.sleep(1)
    print('1')
 
if __name__ == '__main__':
    t = threading.Thread(target=run, args=("t1",))
    t.setDaemon(True)   #把子進程設置為守護線程,必須在start()之前設置
    t.start()
    print("end")
 
----------------------------------
 
>>> task t1
>>> end

我們可以發現,設置守護線程之后,當主線程結束時,子線程也將立即結束,不再執行。

從上面簡單的兩個多線程使用案例上,我們已經可以學到多線程一些應用的地方了,不過小編還是喜歡用python爬蟲多線程的優勢來獲取更多的數據,小伙伴們也可以開拓其他的使用。

以上是“python3爬蟲中多線程有什么優勢”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女