python:Queue模块

发布时间:2019-09-16 07:33:19编辑:auto阅读(1468)

    此模块一般用于和多线程配合

    先进先出  q = Queue.Queue(maxsize)

    后进先出  a = Queue.LifoQueue(maxsize)

    优先级  Queue.PriorityQueue(maxsize)

    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.join(): 实际上意味着等到队列为空,再执行别的操作

    #-*-coding:utf-8-*-
    import Queue
    #创建一个队列(容器)先进先出,设置容器大小为6 只能添加6个数据或者元素
    q = Queue.Queue(6)
    #创建一个队列(容器),先进后出  后进先出
    a = Queue.LifoQueue()
    #print q.empty()
    for i in range(5):
        q.put(i)       #put添加进这个队列
    q.put((1, 2, 3))
    print q.full()
    while not q.empty():  #队列不为空就开始循环
        print q.get(),    #get 从另外一端删除
           
    print
    for i in range(5):
        a.put(i)         #向a队列添加数据
    print a.get(0),      #a是后进先出
    #############运行结果##################
    >>> True
    0 1 2 3 4 (1, 2, 3)
    4


关键字