python3爬蟲中多線程有什么優(yōu)勢

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

創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有十余年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,上千家客戶的共同信賴。提供網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、買鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)

總結(jié)起來,使用多線程編程具有如下幾個優(yōu)點:

  • 進(jìn)程之間不能共享內(nèi)存,但線程之間共享內(nèi)存非常容易。

  • 操作系統(tǒng)在創(chuàng)建進(jìn)程時,需要為該進(jìn)程重新分配系統(tǒng)資源,但創(chuàng)建線程的代價則小得多。因此,使用多線程來實現(xiàn)多任務(wù)并發(fā)執(zhí)行比使用多進(jìn)程的效率高。

  • Python 語言內(nèi)置了多線程功能支持,而不是單純地作為底層操作系統(tǒng)的調(diào)度方式,從而簡化了 Python 的多線程編程。

 

threading模塊

普通創(chuàng)建方式

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

守護(hù)線程

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

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)   #把子進(jìn)程設(shè)置為守護(hù)線程,必須在start()之前設(shè)置
    t.start()
    print("end")
 
----------------------------------
 
>>> task t1
>>> end

我們可以發(fā)現(xiàn),設(shè)置守護(hù)線程之后,當(dāng)主線程結(jié)束時,子線程也將立即結(jié)束,不再執(zhí)行。

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

以上是“python3爬蟲中多線程有什么優(yōu)勢”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享題目:python3爬蟲中多線程有什么優(yōu)勢
當(dāng)前URL:http://muchs.cn/article34/jsohpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、網(wǎng)站制作外貿(mào)建站、企業(yè)網(wǎng)站制作、、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司