码迷,mamicode.com
首页 > 编程语言 > 详细

Python_queue单项队列

时间:2018-12-01 22:14:22      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:baidu   result   ble   生产   imp   play   cep   exce   ros   

  队列(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

 

Python_queue单项队列

标签:baidu   result   ble   生产   imp   play   cep   exce   ros   

原文地址:https://www.cnblogs.com/Vera-y/p/9592249.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!