from multiprocessing import Queue
# 管道型的处理方式 先进先出
# q = Queue(3)
# q.put('hello') # 放入数据
# q.put('hello1', block=True) # 允许队列满时阻塞,等待放入
# q.put('hello1', block=False) # 禁止阻塞,队列满时抛出异常
# q.put('hello2', block=True, timeout=3) # 加入阻塞超时,超时后扔掉数据
# print(q.get()) # 取出数据
# print(q.get()) # 取出数据
# print(q.get()) # 取出数据
# 后进先出的 堆栈型队列
# last in first out
# import queue
# lq = queue.LifoQueue(3)
# lq.put(1)
# lq.put(2)
# lq.put(3)
#
# print(lq.get())
# print(lq.get())
# print(lq.get())
# 优先级队列, 按优先级获取
import queue
pq = queue.PriorityQueue(3)
pq.put((2, 'a'))
pq.put((1, 'b'))
pq.put((3, 'c'))
print(pq.get())
print(pq.get())
print(pq.get())