Python-队列类及其方法

1.Python的队列类型

from queue import Queue, LifiQueue, PriorityQueue, SimpleQueue
  • FIFO(先入先出)Queue(maxsize=0)
    FIFO队列的构造函数。maxsize是一个整数,用于设置放入队列中数据的上限。一旦达到此大小,插入将被阻塞。如果maxsize<=0,则队列大小为无限。
  • LIFO(后进先出)LifoQueue(maxsize=0)
    LIFO队列的构造函数,其它同上。
  • 优先级队列 PriorityQueue(maxsize=0)
    优先级队列的构造函数,其它同上。
  • SimpleQueue
    FIFO队列的简单形式,缺少诸如任务跟踪之类的高级功能。
  • Empty
    在空对象上调用get()方法,引发的异常队列。
  • Full
    在已满的对象上调用put()方法,引发的异常队列。

2.队列对象(适用Queue、LifoQueue和PriorityQueue)

  • qsize()
    返回队列的大小。
    注意qsize()>0不能保证后续的get()不会阻塞,qsize()<maxsize也不能保证对get()的后续调用不会阻塞。

  • empty()
    如果队列是空的返回True,否则返回False。
    如果返回True不能保证后续对put()的调用都不会阻塞。如果返回False也不能保证对get()的后续调用不会阻塞。

  • full()
    如果队列满了返回True,否则返回False。
    如果返回True不能保证对get()的后续调用不会阻塞。如果full返回False也不能保证后续对put()的调用不会阻塞。

  • put(item, block=True, timeout=None)
    将数据插入队列中。
    如果block=True, timeout=None则在必要时进行阻塞,直到队列有空间为止。如果timeout=正数,则它最多超时正数秒。Full队列如果在该时间内没有空间可用,会引发异常。如果block=False,队列有空间,则将数据放入队列(超时被忽略),否则引发Full异常。

  • put_nowait(item)
    等同于put(item, False)。

  • get(block=True, timeout=None)
    从队列中删除并返回一个数据。
    如果block=True, timeout=None则在必要时进行阻塞,直到队列有数据为止。如果timeout=正数,则它最多超时正数秒。Empty队列如果在该时间内没有数据可用,会引发异常。如果block=False,队列有数据,则会返回一个数据(超时被忽略),否则引发Empty异常。

  • get_nowait()
    等同于get(False)。

  • task_done()
    表示先前排队的任务已完成。

  • join()
    阻塞直到队列中的所有数据都已获得处理。每当将项目添加到队列时,未完成任务的数量就会增加。每当使用者线程调用task_done()以指示已检索到该项目并且该项目的所有工作完成时,该计数就会减少。当未完成的任务数降至零时,join()取消阻止。

3.SimpleQueue对象

  1. qsize()
  2. empty()
  3. put(item, block = True, timeout = None )
  4. put_nowait(item)
  5. get(block = True,timeout = None)
  6. get_nowait(item)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值