消息队列MQ

线程队列queue

本文主要是介绍线程队列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, '小王')
'''
这篇关于线程队列queue的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!