美文网首页
Threading生产消费模型

Threading生产消费模型

作者: 梦想做小猿 | 来源:发表于2016-11-30 17:49 被阅读0次

说明:

  • 队列:
    队列类似一条管道,元素put(进),get(出)
    队列都是在内存中操作,进程退出,队列情况,且队列是阻塞形态

  • 队列分类:
    python队列依赖Queue模块

队列 方式
Queue.Queue 先进先出
Queue.LifoQueue 后进先出
queue.PriorityQueue 优先级队列
queue.deque 双线队列
  • 队列方法:
方法 说明
put 往队列中写入数据,默认有block=True和timeout两个参数。当block=True时,写入是阻塞式的,阻塞时间由timeout确定。当队列q被(其他线程)写满后,这段代码就会阻塞,直至其他线程取走数据。Queue.put()方法加上 block=False 的参数,即可解决这个隐蔽的问题。但要注意,非阻塞方式写队列,当队列满时会抛出 exception Queue.Full 的异常
get 取数据(默认阻塞),Queue.get([block[, timeout]])获取队列,timeout等待时间
empty 如果队列为空,返回True,反之False
qsize 显示队列中真实存在的元素长度
maxsize 最大支持的队列长度,使用时无括号
join 等到队列为空,再执行别的操作
task_done 在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号
full 如果队列满了,返回True,反之False

生产消费模型

用队列将生产者和消费者串起来,使他们无需知道对方状态,只需要往队列中放或取数据,解决程序解耦

import threading
import Queue
import time
import random

#设置队列长度为5
q = Queue.Queue(5)

#定义生产者
def Producer(name):
    for i in range(20):
        q.put(i)
        print "Producer %s put %s"(name,i)
        time.sleep(random.randrange(4))

#定义消费者
def Consumer(name):
    while True:
        data = q.get()
        print "Consumer %s get %s"(name,i)
        time.sleep(random.randrange(3))

p = threading.Thread(target=Producer,args=("jack",))
c = threading.Thread(target=Consumer,args=("yang",))

p.start()
c.start()

相关文章

  • Threading生产消费模型

    说明: 队列:队列类似一条管道,元素put(进),get(出)队列都是在内存中操作,进程退出,队列情况,且队列是阻...

  • PYTHON多线程行情抓取工具实现

    思路 借助python当中threading模块与Queue模块组合可以方便的实现基于生产者-消费者模型的多线程模...

  • 34.Python之生产者消费者模型

    Python之生产者消费者模型(非常重要) 生产者消费者模型模型指的是一种解决问题的套路。 生产者消费者模型中包含...

  • 生产者和消费者模型

    生产者和消费者模型 1. 什么是生产者和消费者模型 生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者...

  • 生产者消费者(一)

    生产者消费者模型: 生产者------> 缓存<-------- 消费者

  • 生产者消费者模型Java实现

    生产者消费者模型 生产者消费者模型可以描述为:①生产者持续生产,直到仓库放满产品,则停止生产进入等待状态;仓库不满...

  • wait/notify实现生产者消费者(6)

    生产者消费者模型 生产者消费者模型是一个典型的多线程问题,涉及生产者、消费者、产品仓库。生产者生产的产品放入仓库中...

  • python入门开发学习笔记之掌握什么是生产者消费者模型

    本节重点 熟练掌握什么是生产者消费者模型熟练掌握为什么要用生产者消费者模型熟练掌握如何实现生产者消费者模型本节时长...

  • Future

    Future 模式只是生产者-消费者模型的扩展。经典“生产者-消费者”模型中消息的生产者不关心消费者何时处理完该条...

  • 生产者消费者

    生产者/消费者模式(阻塞队列) 生产者消费者模型的实现

网友评论

      本文标题:Threading生产消费模型

      本文链接:https://www.haomeiwen.com/subject/daytmttx.html