文章詳情頁(yè)
python - 如何解決queue中同一個(gè)參數(shù)被多個(gè)線程同時(shí)調(diào)用?
瀏覽:95日期:2022-08-18 15:18:47
問(wèn)題描述
本人想實(shí)現(xiàn)一個(gè)基礎(chǔ)的多線程爬蟲(chóng),初步想法是篩選目錄中多個(gè)電影標(biāo)題是否有關(guān)鍵字,沒(méi)有的話就進(jìn)入到詳情頁(yè)中查找電影類別中是否有關(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í)訪問(wèn)同一個(gè)url
但現(xiàn)在每次多個(gè)線程同時(shí)調(diào)用queue中的同一個(gè)url,請(qǐng)問(wèn)有什么解決辦法嗎
問(wèn)題解答
回答1:專門用一個(gè)線程讀取queue中的url,然后分配給某個(gè)線程
對(duì)該queue的訪問(wèn)加鎖
相關(guān)文章:
1. javascript - node.js promise沒(méi)用2. node.js - nodejs如何發(fā)送請(qǐng)求excel文件并下載3. 為什么我ping不通我的docker容器呢???4. golang - 用IDE看docker源碼時(shí)的小問(wèn)題5. android 如何實(shí)現(xiàn)如圖中的鍵盤上的公式及edittext的內(nèi)容展示呢6. 算法 - python 給定一個(gè)正整數(shù)a和一個(gè)包含任意個(gè)正整數(shù)的 列表 b,求所有<=a 的加法組合7. java - 我在用Struts2上傳文件時(shí),報(bào)以下錯(cuò)誤怎么回事?8. mysql - 求SQL語(yǔ)句9. MySQL如何實(shí)現(xiàn)表中再嵌套一個(gè)表?10. PHP注冊(cè)功能
排行榜

熱門標(biāo)簽