首页 > 代码库 > python-多线程3-生产者消费者
python-多线程3-生产者消费者
‘‘‘生产者和消费者‘‘‘ ‘‘‘ 用python写一个多线程的生产者和消费者 生产者x x>0,有东西,print(不生产) x=0,没东西,print(生产) for循环 消费者x x=0,没东西,print(不消费) x>0,有东西,print(消费) for循环 分别封装成class ‘‘‘ import threading class Producer(threading.Thread): def __init__(self,name): threading.Thread.__init__(self) self.name = name def run(self): global x tt.acquire() if x>0: #print("我已经生产完毕了,你随意去吧") tt.wait() else: for i in range(5): x=x+1 print("%s在生产中,第%d个"%(self.name,x))#线程的名字 tt.release() class Consumer(threading.Thread): def __init__(self,name): threading.Thread.__init__(self) self.name = name def run(self): global x tt.acquire() if x==0: #print("没东西了") tt.wait() else: for i in range(5): x=x-1 print("%s在消费中,第%d个"%(self.name,x+1)) tt.release() x = 0 #tt = threading.Lock() tt = threading.Condition() p = Producer("producer") c = Consumer("consumer") p.start() c.start() p.join() c.join()
结果:
producer在生产中,第1个
producer在生产中,第2个
producer在生产中,第3个
producer在生产中,第4个
producer在生产中,第5个
consumer在消费中,第5个
consumer在消费中,第4个
consumer在消费中,第3个
consumer在消费中,第2个
consumer在消费中,第1个
好难........搞晕了
python-多线程3-生产者消费者
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。