Python_queue单项队列

Posted Vera_y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_queue单项队列相关的知识,希望对你有一定的参考价值。

  队列(queue),实现程序间的松耦合

队列的三种类:

  • class queue.Queue(maxsize)# 先进先出, maxsize 指定队列长度
  • class queue.LifoQueue(maxsize) # 后进先出(栈)
  • class queue.PriorityQueue(maxsize) # 存储数据是可设置优先级的队列

每个类都有相似的方法:

q.qsize() 返回队列的个数
q.empty() 判断队列是否为空
q.full() 判断队列是否填满了
q.put(item,block = True, timeout = None) 把数据放入一个队列,队列满的时候阻塞了,用timeout限定时间,超过时间报异常,否则队列一直等着.
q.get() 拿出队列内的元素,
q.put_nowait() 如果队列满了直接不等待,抛异常
q.get_nowait() 如果队列里没有东西,直接抛异常
q.task_done() 在生产者-消费者模型中队列作为一个传送带,次方法如一个信号

其中:

  1. exception queue.Empty    #get()阻塞 ,get_nowait()非阻塞抛此异常
  2. exception queue.Full   #put()等待, put_nowait()   给queue设置长度时,队列满则抛此异常

注:在PriorityQueue()中,put的时候有两个参数((优先级,数值),timeout=None)(优先级1>10)

 

技术分享图片
import queue

q = queue.Queue()

q.put([32,None,hello])
q.put([45,34,77])
print(q.qsize())
print(q.empty())
print(q.full())
print(
)
print(q.get())   # 队列按照先进先出
for i in q.get():
    print(i)
example
技术分享图片
2
False
False


[32, None, hello]
45
34
77
result

 

以上是关于Python_queue单项队列的主要内容,如果未能解决你的问题,请参考以下文章

超强解析环形队列,简析单项,双向队列及基础功能实现---风之java

Go 数组模拟单项队列

Go 数组模拟单项队列

数据结构之数组模拟队列(单项队列和环形队列)

数据结构之数组模拟队列(单项队列和环形队列)

# Java 常用代码片段