python - 如何解决queue中同一个参数被多个线程同时调用?
天蓬老师
天蓬老师 2017-04-18 10:28:48
[Python讨论组]

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

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)
迷茫
  1. 专门用一个线程读取queue中的url,然后分配给某个线程

  2. 对该queue的访问加锁

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号