用
Python
实现多线程“生产者
-
消费者”模型的简单例子
生产者消费者问题是一个著名的线程同步问题,
该问题描述如下:
有一个生产者在生产产品,
这些产品将提供给若干个消费者去消费,
为了使生产者和消费者能并发执行,
在两者之间设
置一个具有多个缓冲区的缓冲池,
生产者将它生产的产品放入一个缓冲区中,
消费者可以从
缓冲区中取走产品进行消费,
显然生产者和消费者之间必须保持同步,
即不允许消费者到一
个空的缓冲区中取产品,也不允许生产者向一个已经放入产品的缓冲区中再次投放产品。
#-*-coding:gbk-*-
importthreading,time
milk=0
pool_size=100#
池的大小
mylock=
threading.RLock()
classproducer(threading.Thread):
"""
生产者,主要的业务逻辑为
往池中加入
milk
,以备消费者使用
"""
def__init__(self,step,theadName):
threading.Thread.__init__(self)
self.step=step
self.isRunable=True
self.threadName=
theadName
defrun(self):