线程队列queue

线程队列queue

  • queue:线程之间数据安全的容器队列

  • 原理:加锁 + 链表

Queue 先进先出

import queue

q=queue.Queue(4)  #fifo  先进先出的队列 4:设置列表长度为4,只能放4个数

q.put(1)     #放入
print(q.get())  #取出
try:
    q.get_nowait() #q.get_nowait()当queue为空时不会阻塞直接报错queue.Empty,可以进行异常处理,为空时直接退出
except queue.Empty:pass

LifoQueue 后进先出

  • 用途:三级菜单
import queue
q=queue.LifoQueue()  #后进先出   #栈
q.put(1)
q.put(2)
q.put(3)
print(q.get())
print(q.get())
print(q.get())
得:
3
2
1

PriorityQueue 优先级

  • 用途:会员优先
import queue

q=queue.PriorityQueue()

q.put((3,'小王'))
q.put((1,'小李'))
q.put((2,'小张'))

print(q.get())
print(q.get())
print(q.get())

'''
(1, '小李')
(2, '小张')
(3, '小王')
'''
posted @ 2021-07-02 00:57  刘家小仙女  阅读(56)  评论(0编辑  收藏  举报