gpt4 book ai didi

python - python中是否有非同步队列

转载 作者:行者123 更新时间:2023-11-28 21:48:18 26 4
gpt4 key购买 nike

我正在练习使用 python(实际上是 pypy3)进行编程竞赛。对于一个问题,我需要使用一个队列——我只需要放在一端并从另一端弹出。根据我在文档中发现的内容,我似乎有两个选项 queue.Queuequeue.deque。我首先尝试使用 queue.Queue 解决问题,但我的解决方案超出了时间限制。然后我切换到queue.deque,我通过了这个问题(虽然接近极限)。

从文档来看,这两个容器似乎都是线程安全的(至少对于双端队列的某些操作而言),而对于我的情况,我永远不会使用多个线程。 python中是否内置了一个简单的非同步队列?

最佳答案

deque当然不做同步;文档只是说明 appends 和 pops 保证是线程安全的,因为它们是原子的。特别是在 CPython 中,除了全局解释器锁之外没有其他锁。如果你需要一个ddouble-ended queue,或者说 FIFO,那是你应该使用的。如果您需要后进先出堆栈,请使用列表。 deque 实现在内部使用 doubly-linked list of fixed-length blocks .

queue.Queue使用 deque内部;此外,它使用互斥体来保护那些未由 deque 原子实现的剩余操作。

因此您的问题不是 deque 的选择,而很可能是您算法的其他方面。

关于python - python中是否有非同步队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523633/

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