文章详情页
python - 如何解决queue中同一个参数被多个线程同时调用?
浏览:210日期: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. angular.js - 如何控制ngrepeat输出的个数2. python的MySQLdb库中的executemany方法如何改变默认加上的单引号?3. 网页爬虫 - python requests爬虫,如何post payload4. node.js - 问个问题 Uncaught (in promise)5. python爬虫 - scrapy使用redis的时候,redis需要进行一些设置吗?6. mysql5.7就没有官方性质的详细配置文件吗?求大神告知7. angular.js - angular指令中的scope属性中用&获取父作用域函数的问题8. 求解答:访问不了虚拟服务器的问题?9. html - 这种错位的时间轴怎么布局,然后用css实现?10. mysql_replication - mysql读写分离时如果单台写库也无法满足性能怎么解决
排行榜

网公网安备