相关疑难解决方法(0)

Queue.Queue与collections.deque

我需要一个队列,多个线程可以放入东西,多个线程可以读取.

Python至少有两个队列类,Queue.Queue和collections.deque,前者似乎在内部使用后者.两者都声称在文档中是线程安全的.

但是,队列文档还指出:

collections.deque是无界队列的替代实现,具有快速原子append()和popleft()操作,不需要锁定.

我想我不太沉思:这是否意味着deque毕竟不是完全线程安全的?

如果是,我可能不完全理解这两个类之间的区别.我可以看到Queue添加了阻止功能.另一方面,它失去了一些deque功能,如支持运营商.

直接访问内部deque对象是

x在队列().deque

线程安全的?

另外,为什么当deque已经是线程安全的时候,Queue会使用互斥锁进行操作?

python queue thread-safety

160
推荐指数
5
解决办法
6万
查看次数

标签 统计

python ×1

queue ×1

thread-safety ×1