文章详情页
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,请问有什么解决办法吗
问题解答
回答1:专门用一个线程读取queue中的url,然后分配给某个线程
对该queue的访问加锁
相关文章:
1. 老师,你这两条斜杠的是怎么注释的?2. mac连接阿里云docker集群,已经卡了2天了,求问?3. PHP单例模式4. angular.js - 用angular2-cli打包项目之后,跳转路由刷新会报404的错误5. docker镜像无法删除,请求解决办法。6. $( "html" ).parent()方法返回一个包含document的集合,而$( "html" ).parents()返回一个空集合 哪位大神来解释下?7. node.js - 来帮我捋一下node中fs模块watch实现原理8. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????9. angular.js - angularjs ng-repeat 不能刷新10. mysql - php 備份數據庫
排行榜