zoukankan      html  css  js  c++  java
  • Python2.7-Queue

    Queue 模块,python3中为queue,一般和threading模块同时使用,用于处理多任务队列,模块定义了3种队列类,先进先出(FIFO),后进先出(LIFO),优先级队列

    Queue.Queue(maxsize=0),Queue.LifoQueue(maxsize=0),Queue.PriorityQueue(maxsize=0):创建3种不同的队列类,maxsize设置队列任务上限,小于等于0则上限为无穷

    模块还定义了两个异常,exception Queue.Empty,exception Queue.Full:分别在调用不延迟(non-blocking)的 get() 或 put() 时,队列是空的或满的情况下抛出

    对象方法:

    qsize():返回队列的大致大小,不保证随后调用put()或get()不会阻塞
    empty():返回队列是否为空,不保证随后调用put()或get()不会阻塞
    full():返回队列是否已满,不保证随后调用put()或get()不会阻塞
    put(item[, block[, timeout]]):把任务放进队列中,block 为 True,timeout 为 None(默认)时,会阻塞一直到队列中有空位为止,如果设置了timeout,在时间到了队列还没空位时,就会抛出 Full 异常。block 为 False 时,会立即尝试加入队列,如果没空位就抛出异常,此时timeout参数会被忽略
    put_nowait(item):等同于 put(item, False)
    get([block[, timeout]]):从队列中取出并返回这个任务,block 和 timeout 同 put 方法
    get_nowait():等同于 get(False)
    task_done():指示 get() 得到的任务是否已经完成,用于队列消费者(queue consumer)线程
    join():阻塞主线程一直到队列中所有任务被完成,即每个 get() 的消费者都运行到了 task_done()

    ---------------- 坚持每天学习一点点
  • 相关阅读:
    [20190905] 考试卷子分析
    tmp
    分层图——孤岛营救
    [BNDSOJ] #1106代码
    [BNDSOJ] 小P的数列代码
    补充[BNDSOJ]小p的数列
    针对【H-2017年信息基础班(周一班)】某些同学恶意使用lyl洛谷的谴责
    #1086. 受欢迎的牛
    [sol]250OJ 1~10
    编译原理之词法分析(大三生活第21天,度过了一段萎靡的时光)
  • 原文地址:https://www.cnblogs.com/tccbj/p/8032498.html
Copyright © 2011-2022 走看看