首頁  >  問答  >  主體

python - 如何解决queue中同一个参数被多个线程同时调用?

本人想实现一个基础的多线程爬虫,初步想法是筛选目录中多个电影标题是否有关键字,没有的话就进入到详情页中查找电影类别中是否有关键字。
下面是一部分代码:

executor = ThreadPoolExecutor(max_workers=5)  #Future模块的多线程
executor.map(get_page,whole)   #get_page()为筛选标题的函数
time.sleep(5)
while not que.empty():
    que_data = que.get()
    filter(que_data)    #filter()为筛选分类关键字的函数,但每次五个线程同时访问同一个url

但现在每次多个线程同时调用queue中的同一个url,请问有什么解决办法吗

天蓬老师天蓬老师2741 天前698

全部回覆(1)我來回復

  • 迷茫

    迷茫2017-04-18 10:30:48

    1. 專門用一個執行緒讀取queue中的url,然後分配給某個執行緒

    2. 對該queue的訪問加鎖

    回覆
    0
  • 取消回覆