• Python的并发并行[2] -> 队列[0] -> queue 模块


    queue 模块 / queue Module


    1 常量 / Constants

    Pass

    2 函数 / Function

    Pass

    3 / Class

    3.1 Queue

    类实例化:queue = queue.Queue(maxsize=0)

    类的功能:用于生成一个先入先出队列实例

    传入参数: maxsize

    maxsize: int类型,队列的最大值,无空间时阻塞,未指定时为无限队列

    返回参数: queue

    queue: instance类型,生成的先入先出队列实例

    3.1.1 put()方法

    函数调用: queue.put(item, block=True, timeout=None)

    函数功能:将item放进队列中

    传入参数: item, block, timeout

    item: int/str/obj等类型,放进队列中的项目

    block: bool类型,设置阻塞,True则阻塞,False则会引发异常

    timeout: None/int类型,设置阻塞超时时间(s),None则无限时阻塞

    返回参数:

    3.1.2 get()方法

    函数调用: item = queue.get(block=True, timeout=None)

    函数功能:将item从队列中取出

    传入参数: block, timeout

    block: bool类型,设置阻塞,True则阻塞,False则会引发异常

    timeout: None/int类型,设置阻塞超时时间(s),None则无限时阻塞

    返回参数: item

    item: int/str/obj等类型,从队列中取出的项目

    3.1.3 put_nowait()方法

    函数调用: queue.put_nowait(item)

    函数功能:无等待将item放进队列中,相当于put(item, False),失败则引发Full异常

    传入参数: item

    item: int/str/obj等类型,放进队列中的项目

    返回参数:

    3.1.4 get_nowait()方法

    函数调用: item = queue.get_nowait()

    函数功能:无等待将item从队列中取出,相当于get(False),失败则引发Empty异常

    传入参数:

    返回参数: item

    item: int/str/obj等类型,队列中取出的项目

    3.1.5 task_done()方法

    函数调用: queue.task_done()

    函数功能: 用于表明一个任务已经完成,设置完成标志,常用于队列的消耗线程,每一个get()函数取出一个item,随后可以设置一个task_done,当所有队列的任务都标记完成后,join将释放阻塞

    传入参数:

    返回参数:

    3.1.6 join ()方法

    函数调用: queue.join()

    函数功能:用于阻塞当前的线程,等待join之前所有的队列(包括join之前入列并出列的任务)任务都设置了task_done标志后,才会解除阻塞

    传入参数:

    返回参数:

    3.1.7 qsize()方法

    函数调用: size = queue.qsize()

    函数功能:返回当前队列的大小(由于其他线程存在修改,该值并不准确,为近似值)

    传入参数:

    返回参数: size

    siez: int类型,队列中item的数量

    3.1.8 empty()方法

    函数调用: status = queue.empty()

    函数功能:返回当前队列的状态,为空返回True,否则返回False,与qsize一样,返回的是一个近似值,若需要等待所有队列结束,建议使用join()函数

    传入参数:

    返回参数: status

    status: bool类型,True表示当前队列为空

    3.1.9 full()方法

    函数调用: status = queue.full()

    函数功能:返回当前队列的状态,队列已满返回True,否则返回False,同样返回的是一个近似值

    传入参数:

    返回参数: status

    status: bool类型,True表示当前队列为空

    3.2 LifoQueue

    类实例化:queue = queue.LifoQueue(maxsize=0)

    类的功能:用于生成一个后入先出队列实例

    传入参数: maxsize

    maxsize: int类型,队列的最大值,无空间时阻塞,未指定时为无限队列

    返回参数: queue

    queue: instance类型,生成的后入先出队列实例

    Note:

    对于LifoQueue类,其基类是Queue,在源代码中重定义了Queue的_init, _qsize, _put, _get函数,使其在队列的处理顺序上有所不同(其本质为向队列列表中取出item时_get()函数使用的是popleft函数还是pop函数),其父类的函数均可以继承使用。

    3.3 PriorityQueue

    类实例化:queue = queue.PriorityQueue(maxsize=0)

    类的功能:用于生成一个优先级队列实例,最小的最优取出

    传入参数: maxsize

    maxsize: int 类型,队列的最大值,无空间时阻塞,未指定时为无限队列

    返回参数: queue

    queue: instance类型,生成的优先级队列实例

    Note:

    对于PriorityQueue类,其基类也是Queue,同样在源代码中重定义了Queue的_init, _qsize, _put, _get函数,使其在队列的处理顺序上有所不同(其本质为向队列列表中取出item时_get()使用了heappop函数,而放入时使用了heappush函数),父类函数同样可继承使用。

    3.4 Empty异常类

    类实例化:

    类的功能:用于当队列为空且调用get*()方法时抛出的异常

    传入参数:

    返回参数:

    3.5 Full异常类

    类实例化:

    类的功能:用于当队列已满且调用put*()方法时抛出的异常

    传入参数:

    返回参数:

  • 相关阅读:
    Html、Vue——本地文件上传弹框+读取本地文件内容
    git-基本操作
    Selenium(二)---无界面模式+滑动底部
    Selenium(一)---Selenium的安装和使用
    Nginx+win10安装配置
    Tinghua Data Mining 9
    Tinghua Data Mining 8
    Tinghua Data Mining 7
    Tinghua Data Mining 6
    Tinghua Data Mining 5
  • 原文地址:https://www.cnblogs.com/stacklike/p/8166594.html
Copyright © 2020-2023  润新知