小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python爬蟲的多線程實現(xiàn), 神級程序員分享!

 xiaoyimin 2019-02-24

Python因為有GIL鎖,多線程一直被詬病。在CPU密集型的任務(wù)場景中Python的多線程并不是很理想,而對于像網(wǎng)絡(luò)爬蟲這樣的IO密集型任務(wù)場景,Python的多線程可以在一定程度上提高任務(wù)的并行度。下面我們詳細(xì)說一下:

一、原理

解釋一下:

master線程的run方法中,第一眼看它是個死循環(huán),實際上它的意思是:我們從response_queue中,拿不到任務(wù)響應(yīng)的時候,會拋出異常,退出循環(huán)體。拿到響應(yīng)以后,調(diào)用filter方法,filter的參數(shù)是ResponseItem對象,ResponseItem中包含已抓取URL,這個方法有兩個作用:第一個是保存已抓取鏈接,第二個是去掉待抓取鏈接中重復(fù)的鏈接。

<div '="">

三、總結(jié)一下

簡單的說,主線程負(fù)責(zé)任務(wù)調(diào)度,從響應(yīng)隊列獲取任務(wù)執(zhí)行結(jié)果, 往任務(wù)隊列加入新的任務(wù),子線程負(fù)責(zé)抓取任務(wù)。從任務(wù)隊列獲取任務(wù),執(zhí)行完成后返回結(jié)果,存放到響應(yīng)隊列。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多