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('\n')
print(q.get())   # 队列按照先进先出
for i in q.get():
    print(i)
example
2
False
False


[32, None, 'hello']
45
34
77
result

 

猜你喜欢

转载自www.cnblogs.com/Vera-y/p/9592249.html