Python:有双端队列的线程安全版本吗?

问题描述 投票:2回答:1

我有一个由Consumer类和Producer类组成的线程程序。当前,我在实现中使用Fifo queue.Queue,其中生产者put将数据放在队列的末尾,而消费者get将其放在队列的末尾。

但是,我想添加一个功能,如果需要,Consumer可以通过将其放回到put的前面来get退回Queue的(可能稍作修改的)项目。 (这样get返回的下一个项目就是刚刚添加的项目,就像在堆栈中一样。)>

我知道这对于deque是可行的,但是我已经读过here,它们仅对append()popleft()具有线程安全性。出于上述目的,我还需要使用appendleft()

是否存在具有deque功能的线程安全数据结构?如果不是,是否可以在每次使用deque时都放置自己的锁来使appendleft线程安全?

我有一个由Consumer类和Producer类组成的线程程序。当前,我在实现中使用Fifo queue.Queue,其中生产者将数据放在队列的末尾,然后...

python multithreading collections thread-safety deque
1个回答
0
投票

虽然某些deque功能不是线程安全的,但您应该尝试做的是。

© www.soinside.com 2019 - 2024. All rights reserved.