zoukankan      html  css  js  c++  java
  • 队列

    import queue,time,threading
    
    q=queue.Queue(5)#队列最多只能放5个
    
    
    def Producer(name):
        count=1
        while True:
            print("生产第[%s]个包子"%count)
            q.put(count)
            count+=1
            time.sleep(1.5)
    
    def Consumer(name):
        while True:
            print("%s 取了第[%s]包子,并且把它吃了"%(name,q.get()))
    
    p=threading.Thread(target=Producer,args=('hunter',))
    c=threading.Thread(target=Consumer,args=('James',))
    c1=threading.Thread(target=Consumer,args=('Jack',))
    
    p.start()
    c.start()
    c1.start()
    

    队列:

    它和列表的区别就是,数据从队列中拿走后,数据就不存在队列中了,列表就不一样数据拿走了,列表中的数据还是存在, 默认的是先进先出, 也有优先级和后进先出

    两个方法 一个是put 往队列里面添加数据,一个是get从队列里面取出数据

    import queue
    q=queue.Queue()
    q.put(1)#往队列里面添加数据
    q.put(2)
    
    print(q.get())#从队列里面取出数据
    print(q.qsize())#队列里面有多少数据。
    如果队列的数据已经取完了。就会造成阻塞
    

    深度队列 

     from collections import deque

    deque.append()#从后面放数据

    deque.appendleft()#从前面放数据

    deque.pop()#从后面取数据

    deque.popleft()#从前面取数据

  • 相关阅读:
    RPC(简单实现)
    观察者模式
    自省(Introspector)
    Mybatis学习笔记
    Nginx
    AJAX跨域
    手写Tomcat
    监听器模式
    回调
    Temporal Segment Networks
  • 原文地址:https://www.cnblogs.com/hunterYi/p/9068131.html
Copyright © 2011-2022 走看看