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() | 在生产者-消费者模型中队列作为一个传送带,次方法如一个信号 |
其中:
- exception queue.Empty #get()阻塞 ,get_nowait()非阻塞抛此异常
- 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)
2
False
False
[32, None, ‘hello‘]
45
34
77
以上是关于Python_queue单项队列的主要内容,如果未能解决你的问题,请参考以下文章