zoukankan      html  css  js  c++  java
  • python 队列

    队列简单使用:

    # -*- coding: utf-8 -*-
    
    '''
    队列的作用: 1. 解耦
                2. 提高效率
                
    queue.Queue() 先进先出
    queue.LifoQueue() 后进先出
    queue.priorityQueue() 设置优先级的队列
     
    Queue.put(item,block=True,timeout=None) 放数据
    Queue.full()  判断队列是否是满的
    Queue.empty() 判断队列是否为空
    Queue.qsize() 队列大小 
    Queue.get() 取队列中的数据, 如果队列中没有数据 将会卡住
    Queue.get_nowait() 也是取队列中的数据,区别是当队列没有数据,就会抛出异常,相当于Queue.get(block=false)
    
    
    '''
    
    import queue
    
    #默认没有限制大小
    q = queue.Queue()
    q.put("d1")
    q.put("d2")
    q.put("d3")
    
    
    #输出queue 大小
    print(q.qsize())
    
    #取数据
    print(q.get())
    print(q.get())
    print(q.get_nowait())
    
    
    print("------------------")
    q2 = queue.LifoQueue()
    q2.put("f1")
    q2.put("f2")
    q2.put("f3")
    
    print(q2.qsize())
    
    
    print(q2.get())
    print(q2.get())
    print(q2.get_nowait())
    
    
    print("******************")
    q3= queue.PriorityQueue()
    
    q3.put((3,"p1"))
    q3.put((1,"p2"))
    q3.put((2,"p3"))
    print(q3.get())
    print(q3.get())
    print(q3.get())

    实现生产者消费者:

    # -*- coding: utf-8 -*-
    import threading
    import queue
    import time
    
    q  = queue.Queue(10)
    def  producer(name):
        count=1
        while True:
            q.put("包子 %s"%(count))
            print("生成了包子  ",count)
            count+=1
            time.sleep(1)
            
    def consumer(name):
    #     while q.qsize()>0:
        while True:
            print("%s 吃包子 %s"%(name ,q.get()))
            time.sleep(1)
            
    
    p = threading.Thread(target=producer,args=("xiaoqiang",))
    c = threading.Thread(target=consumer,args=("wangwang",))
    c1 = threading.Thread(target=consumer,args=("wangcai",))
    p.start()
    c.start()
    c1.start()
  • 相关阅读:
    示波器测量电源的纹波
    hdoj 2717 Catch That Cow
    hdoj 1548 A strange lift
    hdoj 4586 Play the Dice
    zoj 2095 Divisor Summation
    hdoj 4704 Sum
    router-link传参
    字体自适应
    横向滚动div
    vue路由
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/8026834.html
Copyright © 2011-2022 走看看