gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:41 25 4
gpt4 key购买 nike

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

但是,我想添加一个功能,如有必要,Consumer 可以得到s 将其放回 Queue 的前端(以便 get 返回的下一个项目是刚刚添加的项目,就像在堆栈中一样)。

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

是否有线程安全的数据结构具有deque的特性?如果不是,我是否可以通过在每次使用 appendleft 时放入自己的锁来使 deque 线程安全?

最佳答案

双端队列作者在这里。

  • 您感兴趣的操作都是原子操作。
  • 唯一的非原子操作是:remove()index()countclear() 由于可以进行纯 python 回调的相等性测试或由于可以触发任意 python 代码的 decrefs。

希望这有帮助:-)

关于Python:是否有双端队列的线程安全版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com