精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

python爬蟲中多線程和多進程的示例分析

小編給大家分享一下python爬蟲中多線程和多進程的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

在淳安等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網站、成都網站制作 網站設計制作定制設計,公司網站建設,企業(yè)網站建設,品牌網站制作,網絡營銷推廣,外貿營銷網站建設,淳安網站建設費用合理。

python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。

一、進程/線程

表示可以同時執(zhí)行多個任務,進程和線程的調度是由操作系統(tǒng)自動完成。

1、進程:是線程的集合,是由一個或多個線程構成的。

每個進程都有自己獨立的內存空間,不同進程之間的內存空間不共享。

進程之間的通信有操作系統(tǒng)傳遞,導致通訊效率低,切換開銷大。

2、線程:是操作系統(tǒng)進行運算調度的最小單位,是進程中的一個最小運行單元。

一個個進程可以有多個線程,所有線程共享進程的內存空間,通訊效率高,切換開銷小。

二、多進程/多線程

1、多進程

進程的調度:當有多個進程并行執(zhí)行時,每個進程得到的時間片的時間不一樣,哪個進程接受哪個請求以及執(zhí)行完成的時間都是不定的,所以不處理的話會輸出亂序。

python中多進程用到的模塊是multiprocessing(python就是模塊多…一些基本的,常用的都已經有模塊了……),multiprocessing[下面簡稱mp]的很大的一部分與threading模塊使用同一套API

進程池:Pool【感覺已經是mp的高級用法了】,可以提供指定數量的進程供用戶調用,每當有請求提交到Pool的時候,如果進程池還沒有滿,就會創(chuàng)建一個新的進程來執(zhí)行請求,如果進程滿了,則請求將會被告知先等待,直至進程池中有進程結束才會放入,以執(zhí)行請求。

簡單來說,就是進程池可創(chuàng)建多個進程,這些進程就像是隨時待命的士兵,準備執(zhí)行任務。

2、多線程

不依賴CPU的操作我們是可以通過使用多線程來大大提高程序的效率。

Python一般通過threading庫來實現多線程。threading庫是對thread庫進行包裝后的產物。

并發(fā)(concurrency)

指同一時刻只能有一條指令執(zhí)行,但多個線程的對應的指令被快速輪換地執(zhí)行,宏觀上看起來多個線程在同時運行,但微觀上只是這個處理器在連續(xù)不斷地、在多個線程之間切換和執(zhí)行。

并行(parallel)

指同一時刻有多條指令在多個處理器上同時執(zhí)行,并行必須要依賴于多個處理器,不論宏觀上還是微觀上,多個線程都是在同一時刻一起執(zhí)行的。

GIL 全局解釋器鎖:線程的執(zhí)行權限,在Python的進程里只有一個GIL。一個線程需要執(zhí)行任務,必須獲取GIL。

好處:直接杜絕了多個線程訪問內存空間的安全問題。

壞處:Python的多線程不是真正多線程,不能充分利用多核CPU的資源。但是,在I/O阻塞的時候,解釋器會釋放GIL。

線程實現

1)通過繼承threading當中的Thread類

2)然后再init里調用Thread的init方法(或者用super調用超類的構造函數),就可以完成對一個線程的初始化創(chuàng)建工作。

3)然后我們可以通過重寫類的run方法來定義這個線程的要做的事。

4)創(chuàng)建一個這個類的對象。

5)然后調用這個對象的start方法就讓這個線程開始工作了。

6)調用對象的join方法等待這個線程結束工作

三、總結

1、多進程:

密集CPU任務,需要充分使用多核CPU資源(服務器,大量的并行計算)的時候,用多進程。

想要提高執(zhí)行效率,大部分開發(fā)者是通過編寫多進程來提高運行效率,使用multiprocessing進行并行編程。

缺陷:

每個進程都會有自己的內存,數據多的話,內存會吃不消。

多個進程之間通信成本高,切換開銷大。

2、多線程:

密集I/O任務(網絡I/O,磁盤I/O,數據庫I/O)使用多線程合適。

多線程是為了同步完成多項任務,通過提高資源使用效率來提高系統(tǒng)的效率。線程是在同一時間需要完成多項任務的時候實現的。

缺陷:

在編寫多線程代碼時候,要注意死鎖的問題、阻塞的問題、以及需要注意多線程之間通信的問題(避免多個線程執(zhí)行同一個任務)。

同一個時間切片只能運行一個線程,不能做到高并行,但是可以做到高并發(fā)。

看完了這篇文章,相信你對“python爬蟲中多線程和多進程的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道,感謝各位的閱讀!


分享名稱:python爬蟲中多線程和多進程的示例分析
網站URL:http://m.jcarcd.cn/article/pijcpd.html
主站蜘蛛池模板: 国产美女极品粉 | 韩国三级在线观看 | 午夜福利182tv | 午夜亚洲欧 | 国产嫖妓正在播放 | 老熟女毛茸茸 | 国产网站在线播放 | 国产精品精品国 | 福利所第一导航 | 午夜电影网首页 | 成人亚洲综合 | 看中文欧美性爱大片 | 青青青国产观91 | 国产精品三区短视频 | 欧美日韩性视频 | 国产姐弟乱伦视 | 精品露脸 | 国产视频| 97免费精品 | 91夫妻小视 | 国产伦理 | 国产日韩一区美利坚 | 日韩剧情片电影 | 亚洲无码动态图 | 国产自产在线 | 国产一区二区高清 | 日产无线码一区 | 午夜亚洲一区二区福 | 成人性综合网 | 日本欧美视频在线看 | 国产69永| 人人草影院 | 国产精品日产三 | 欧美三级视频 | 无码动漫精选在线播放 | 国产主播在线观看网 | 国产精品三级在 | 91伦理福利 | 精品亚洲中文免费 | 精品一区三区 | 日本高清无卡 |