在 Python 中清除队列中的所有项目
在 Python 中清除队列中的所有项目:
- 使用队列上的 queue 属性来获取一个双端队列对象。
- 在双端队列对象上调用 clear() 方法,例如 q.queue.clear()。
- clear 方法将从队列中删除所有元素。
import queue
q = queue.Queue()
for item in range(10):
q.put(item)
print(q.queue) # ?️ deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
q.queue.clear()
print(q.queue) # ?️ deque([])
queue 属性指向一个 deque 对象,而 deque 对象实现了 clear
方法。
clear()
方法从双端队列中删除所有元素,并使其长度为 0。
如果需要使操作线程安全,请使用互斥锁。
import queue
q = queue.Queue()
for item in range(10):
q.put(item)
print(q.queue) # ?️ deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# ?️ use mutex lock
with q.mutex:
q.queue.clear()
print(q.queue) # ?️ deque([])
如果代码在多线程环境中运行,我们可以使用互斥锁。
另一种方法是简单地创建一个新队列并删除旧队列。
import queue
q = queue.Queue()
for item in range(10):
q.put(item)
del q # ?️ delete old queue
new_q = queue.Queue()
print(new_q.queue) # ?️ deque([])
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。