扫码关注官方订阅号
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 ofmultithreading/multiprocessing semantics, this is not reliable.
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
Queue中的队列被取空了? 然后Get就阻塞了?
贴个代码看看
下面这行在Queue为空的情况下是会阻塞的,由于没有设置timeout,会一直阻塞到Queue中有数据为止:
另外在多进程中使用empty()判断是不稳定的:
因为当时check时是empty,但check完可能已经被其它进程塞入数据了,
或者当时check时不是empty,但check完可能已经被其它进程取光数据变成empty了。
文档也是这么说的: