消息队列 - Python 中 Queue 的用法?
巴扎黑
巴扎黑 2017-04-17 17:05:07
[Python讨论组]
巴扎黑
巴扎黑

全部回复(2)
大家讲道理

Queue中的队列被取空了? 然后Get就阻塞了?
贴个代码看看

迷茫

下面这行在Queue为空的情况下是会阻塞的,由于没有设置timeout,会一直阻塞到Queue中有数据为止:

q.get(block=True)

另外在多进程中使用empty()判断是不稳定的:
因为当时check时是empty,但check完可能已经被其它进程塞入数据了,
或者当时check时不是empty,但check完可能已经被其它进程取光数据变成empty了。

文档也是这么说的:

empty()
Return True if the queue is empty, False otherwise. Because of
multithreading/multiprocessing semantics, this is not reliable.

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

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