我需要一个队列,多个线程可以放入东西,多个线程可以读取.
Python至少有两个队列类,Queue.Queue和collections.deque,前者似乎在内部使用后者.两者都声称在文档中是线程安全的.
但是,队列文档还指出:
collections.deque是无界队列的替代实现,具有快速原子append()和popleft()操作,不需要锁定.
我想我不太沉思:这是否意味着deque毕竟不是完全线程安全的?
如果是,我可能不完全理解这两个类之间的区别.我可以看到Queue添加了阻止功能.另一方面,它失去了一些deque功能,如支持运营商.
直接访问内部deque对象是
x在队列().deque
线程安全的?
另外,为什么当deque已经是线程安全的时候,Queue会使用互斥锁进行操作?