Queue.Queue并
collections.deque达到不同的目的。Queue.Queue用于允许不同的线程使用排队的消息/数据进行通信,而
collections.deque只是作为数据结构使用。这就是为什么
Queue.Queue有类似的方法
put_nowait(),
get_nowait()和
join(),而
collections.deque不会。
Queue.Queue不打算用作集合,这就是为什么它缺少
in运算符之类的原因。
归结为:如果您有多个线程,并且希望它们能够在不需要锁的情况下进行通信,那么您正在寻找
Queue.Queue;如果您只想将队列或双端队列作为数据结构,请使用
collections.deque。
最后,访问和操纵a的内部双端队列
Queue.Queue正在玩火-您确实不想这样做。



