文章詳情頁
python - 如何解決queue中同一個(gè)參數(shù)被多個(gè)線程同時(shí)調(diào)用?
瀏覽:80日期: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. python - 獲取到的數(shù)據(jù)生成新的mysql表2. 為什么python中實(shí)例檢查推薦使用isinstance而不是type?3. mysql里的大表用mycat做水平拆分,是不是要先手動分好,再配置mycat4. window下mysql中文亂碼怎么解決??5. sass - gem install compass 使用淘寶 Ruby 安裝失敗,出現(xiàn) 4046. python - (初學(xué)者)代碼運(yùn)行不起來,求指導(dǎo),謝謝!7. 為啥不用HBuilder?8. python - flask sqlalchemy signals 無法觸發(fā)9. python的文件讀寫問題?10. javascript - js 對中文進(jìn)行MD5加密和python結(jié)果不一樣。
排行榜

熱門標(biāo)簽