python 爬蟲 多執行緒 多程序

2022-07-26 16:42:15 字數 995 閱讀 4129

乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.

資源:程序擁有獨立資源,執行緒依賴於程序,沒有獨立資源,所有該程序的執行緒共享所在程序的所有資源。

劃分尺度:執行緒的劃分尺度小於程序(資源比程序少),使得多執行緒程式併發性更高。

執行緒:執行緒的執行開銷小,但不利於資源的管理和儲存。

程序:多個程序之間相互獨立,不利於程序間資訊互動。程序擁有獨立資源。

在設計資料互動頻繁的場景,多程序比多程序更加適合。

在併發程度上,多程序比多執行緒的效率更高。

解決的方式:cpu不用休息就可以做到。

現在我們的程式一般只有乙個主線程

如果在程式中遇到:阻塞。一旦阻塞了,cpu就休息了。休息的這段時間,就浪費了cpu的資源。

有兩種方式可以阻塞:1、time.sleep()    2、遇到io操作

多執行緒:多個任務。cpu會在這多個任務之間切換,如果其中乙個執行緒阻塞了,cpu不會休息,會處理其他執行緒。

cpu是多核的。---利用cpu的多核進行解決。---cpu每乙個核處理乙個程序。--用多程序去處理。

1、需要繼承threading.thread  

2、保證父類的init方法能夠被呼叫

3、步驟

繼承thread

重寫run方法

例項化執行緒類,就相當於建立乙個執行緒,用這個物件呼叫start()方法就可以啟動這個執行緒

如果自定義執行緒類要實現init方法,必須先調動父類的init方法。

使用執行緒物件.name檢視(預設是thread-1,thread-2....)

自定義名稱:其實就是給self.name賦值

threading.enumerate()--可以檢視當前程序中的執行緒的數量

Python爬蟲 非同步爬蟲(多程序和多執行緒)

非同步爬蟲 在爬蟲中使用非同步實現高效能的資料爬取操作 執行緒是程式執行的最小單位,乙個程序可以有多個執行緒。非同步爬蟲的方式 多程序,多執行緒 不建議 好處 可以為相關阻塞的操作單獨開啟程序或者執行緒,阻塞操作就可以非同步執行 繼續執行阻塞的操作之後的 弊端 無法無限制地開啟多程序或者多執行緒 程...

python多執行緒 多程序

background task once join is used whether deamon attribute is true is not importantonly useful when the main program is running ok to kill starmap和map...

python多執行緒 多程序

threading相對與thread是更高階別的執行緒管理模組 thread和threading模組中的一些屬性會有衝突 thread模組擁有的同步原因實際上只有乙個lock,而threading有很多 lock,semaphore等 使用thread模組執行緒,當主線程結束時其子執行緒也會被強制結...