文章详情页
python - 如何解决queue中同一个参数被多个线程同时调用?
浏览:141日期:2022-08-18 15:18:47
问题描述
本人想实现一个基础的多线程爬虫,初步想法是筛选目录中多个电影标题是否有关键字,没有的话就进入到详情页中查找电影类别中是否有关键字。下面是一部分代码:
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,请问有什么解决办法吗
问题解答
回答1:专门用一个线程读取queue中的url,然后分配给某个线程
对该queue的访问加锁
相关文章:
1. linux - 编译时提示头文件#include <mysql/mysql.h>不存在,百度之后也没解决2. html - 内嵌app 的web 页面如何应用 app 内置的静态文件3. javascript - immutable配合react提升性能?4. node.js - webpack --watch以后报错env: node: No such file or directory5. angular.js - AngularJS link函数里调用CSS transition transform 是瞬发的,6. JAVA 版本问题?7. java - Spring +Mybatis 事务 不能回滚8. java - yuicompressor-maven-plugin 合并可用却不压缩, 哪配置不对?9. css3 - 如何出現橫向捲軸?10. html页面中怎么将两个点之间的距离用直线连接起来?
排行榜
