您的位置:威尼斯官方网站 > 威尼斯正规官网 > 并切每个需要处理线程只需要将请求的数据放入

并切每个需要处理线程只需要将请求的数据放入

发布时间:2019-11-06 21:41编辑:威尼斯正规官网浏览(151)

    作用:

       解耦:使程序直接完结松耦合,改良多个函数,不会有串联关系。

       升高管理功效:FIFO = 现进先出,LIFO = 后入先出。

     

    队列:

      队列能够现身的派多少个线程,对排列的线程管理,并切每种必要管理线程只要求将号召的数额放入队列容器的内部存储器中,线程不供给翘首以待,当排列落成管理完数据后,线程在定期来取多少就可以。央浼数据的线程只与那一个行列容器存在关联,管理多少的线程down掉不会潜濡默化到央求数据的线程,队列会派给此外线程管理那分多少,它完成掌握耦,提升效用。队列内会有多少个有各类的器皿,列表与那几个容器是有分其他,列表中数据就算是排列的,但多少被取走后还有恐怕会保留,而队列中这么些容器的数据被取后将不会保留。当必需在三个线程之间安全地沟通消息时,队列在线程编制程序中特别有用。

     

     

    参数介绍:

    # 先入先出 maxsize 可设置大小,设置block=False抛异常
    class queue.Queue(maxsize=0)  
    
     # 后进先出 
    class queue.LifoQueue(maxsize=0)
    
    # 存储数据时可设置优先级的队列
    # 优先级设置数越小等级越高
    class queue.PriorityQueue(maxsize=0) 
    
    # 放入数据
    Queue.put(item, block=True, timeout=None)
    
    # 取出数据 #没有数据将会等待
    Queue.get(block=True, timeout=None)
    
    # 如果1秒后没取到数据就退出
    Queue.get(timeout = 1)
    
    
    # 取数据,如果没数据抛queue.Empty异常
    Queue.get_nowait()
    
    # 查看队列大小
    Queue.qsize()
    
    # 返回True,如果空
    Queue.empty() #return True if empty  
    
    # 设置队列大小
    Queue.full() 
    
    # 后续调用告诉队列,任务的处理是完整的。
    Queue.task_done()
    

     

    劳动者花销者模型:

    import threading,time
    import queue
    
    # 最多存入10个
    q = queue.Queue(maxsize=10)
    
    def producer(name):
        count = 1
    
        while True:
    
               # 生产一块骨头
                q.put("骨头 %s" % count )
                print("生产了骨头",count)
                count +=1
                time.sleep(0.3)
    
    def consumer(name):
        while True:
            print("%s 取到[%s] 并且吃了它" %(name, q.get()))
            time.sleep(1)
    
           # 告知这个任务执行完了
            q.task_done() 
    
    # 生成线程
    p = threading.Thread(target=producer,args=("德国骨科",))
    c = threading.Thread(target=consumer,args=("陈狗二",))
    d = threading.Thread(target=consumer,args=("吕特黑",))
    
    # 执行线程
    p.start()
    c.start()
    d.start()
    

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:并切每个需要处理线程只需要将请求的数据放入

    关键词:

上一篇:威尼斯官方网站:t')转为空格

下一篇:没有了