zoukankan      html  css  js  c++  java
  • python下的queue

    一:基本介绍

    1. 介绍:

    Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递。

    2. 类型

      队列按数据存放的类型分为:FIFO(First in First Out,先进先出)和LIFO(Last in First Out)两类。

    3.基本用法:

    1)队列使用

    FIFO:class Queue.Queue(maxsize=0)

    maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制

    import Queue
    q = Queue.Queue()
    for i in range(5):
    q.put(i)
    while not q.empty():
    print q.get()

    LIFO:class Queue.LifoQueue(maxsize=0)
    LIFO即Last in First Out,后进先出。与栈的类似,使用也很简单,maxsize用法同上

    import Queue
    q = Queue.LifoQueue()
    for i in range(5):
    q.put(i)
    while not q.empty():
    print q.get()

    2) 常用方法:

    Queue.qsize() 返回队列的大小 
    Queue.empty() 如果队列为空,返回True,反之False 
    Queue.full() 如果队列满了,返回True,反之False
    Queue.full 与 maxsize 大小对应 
    Queue.get([block[, timeout]])获取队列,timeout等待时间 
    Queue.get_nowait() 相当Queue.get(False)
    非阻塞 Queue.put(item) 写入队列,timeout等待时间 
    Queue.put_nowait(item) 相当Queue.put(item, False)
    Queue.task_done() 在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号
    Queue.join() 实际上意味着等到队列为空,再执行别的操作

  • 相关阅读:
    【动态规划】多重背包
    【动态规划】完全背包问题
    【背包问题】0-1背包、完全背包、多重背包、混合三种背包、二位费用背包、分组背包
    HDU1712ACboy needs your help【分组背包】
    关于kettle
    面向接口编程
    MS Sql添加描述信息 及其他信息
    记录我一个特别酷的梦
    EF 线程内唯一对象
    javascript 学习犯错记录
  • 原文地址:https://www.cnblogs.com/spacepirate/p/6388666.html
Copyright © 2011-2022 走看看