這篇文章主要介紹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爬蟲中多線程有什么優勢”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。