文章詳情頁
python - 如何解決queue中同一個(gè)參數(shù)被多個(gè)線程同時(shí)調(diào)用?
瀏覽:83日期:2022-08-18 15:18:47
問題描述
本人想實(shí)現(xiàn)一個(gè)基礎(chǔ)的多線程爬蟲,初步想法是篩選目錄中多個(gè)電影標(biāo)題是否有關(guān)鍵字,沒有的話就進(jìn)入到詳情頁中查找電影類別中是否有關(guān)鍵字。下面是一部分代碼:
executor = ThreadPoolExecutor(max_workers=5) #Future模塊的多線程executor.map(get_page,whole) #get_page()為篩選標(biāo)題的函數(shù)time.sleep(5)while not que.empty(): que_data = que.get() filter(que_data) #filter()為篩選分類關(guān)鍵字的函數(shù),但每次五個(gè)線程同時(shí)訪問同一個(gè)url
但現(xiàn)在每次多個(gè)線程同時(shí)調(diào)用queue中的同一個(gè)url,請問有什么解決辦法嗎
問題解答
回答1:專門用一個(gè)線程讀取queue中的url,然后分配給某個(gè)線程
對該queue的訪問加鎖
相關(guān)文章:
1. docker api 開發(fā)的端口怎么獲取?2. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!3. angular.js - angularjs的自定義過濾器如何給文字加顏色?4. MySQL數(shù)據(jù)庫中文亂碼的原因5. docker gitlab 如何git clone?6. angular.js - 關(guān)于$apply()7. docker-compose 為何找不到配置文件?8. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下9. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?10. css - C#與java開發(fā)Windows程序哪個(gè)好?
排行榜

熱門標(biāo)簽