队列设置最大长度后,整个程序被阻塞

来源:8-7 使用多线程和Queue重构csdn爬虫

Sean_Liu_HD

2020-12-06

ParseTopicDetailThread如果有下一页数据再put进topic_queue时整个程序被阻塞。
应该是此时ParseTopicListThread向topic_queueput了数据导致队列已满,
然后两个线程都在向topic_queue中put时被阻塞住了,
感觉类似于死锁,
请问老师有什么好的解决方案吗?

写回答

1回答

bobby

2020-12-07

如果是队列的话 这里不应该出现死锁,比如你现在列表页解析过快,很快将队列放满,这个时候消费者消费不过来,那么这个时候生产者阻塞等待消费者消费之后才能放入,这个地方是消费者和生产者之间的关系,两者之间又不会竞争同一把锁,为什么会死锁?

0
2
慕少0521335
我这边即使没有设置队列长度,也会卡住,log信息如下: Exception ignored in: Traceback (most recent call last): File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/threading.py", line 1388, in _shutdown lock.acquire()
2021-04-18
共2条回复

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2378 学习 · 1158 问题

查看课程