文章目录
Python自带的队列模块有4种队列:
- FIFO(Queue): first in first out 先进先出
- LIFO(LifoQueue): last in first out 后进先出,类似于栈的数据结构
- priority(PriorityQueue): 优先队列
- deque: 双端队列
1. FIFO(Queue) – 先进先出
- 导入模块
from queue import Queue
- 设置队列长度、进队列与出队列
from queue import Queue
if __name__ == "__main__":
# 如果maxsize设置为小于0或者不设置,队列为无限长
que = Queue(maxsize=2)
# 进队列
que.put(1)
# 出队列
result = que.get()
print(result)
>>>>>>
1
- 入队列时堵塞
from queue import Queue
if __name__ == "__main__":
que = Queue(maxsize=1)
# 此时如果入队列两次, put将会一直堵塞,等待前一个出队列
que.put(1)
que.put(2)
print("ok")
- 入队列非堵塞.
from queue import Queue
if __name__ == "__main__":
que = Queue(maxsize=1)
que.put(1)
try:
# 如果队列为满,非堵塞将会报异常
que.put(2, block=False)
except Exception:
print("队列已满")
>>>>>>
队列已满
- 出队列堵塞
from queue import Queue
if __name__ == "__main__":
que = Queue(maxsize=2)
que.put(1)
que.get()
que.get()
print("ok")
# 如果队列为空,get会一直等待
- 出队列非堵塞
from queue