zoukankan      html  css  js  c++  java
  • 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个

    好难........搞晕了

  • 相关阅读:
    indexedDB 增删改查
    css-包含块
    css解析规则
    css样式---隐藏元素
    javascript实现数据结构----栈
    Android Studio 显示 logcat
    Android Spinner 绑定键值对
    Java json转model
    this view is not constrainted......
    Android 访问 Webapi 更新UI
  • 原文地址:https://www.cnblogs.com/R-bear/p/7031722.html
Copyright © 2011-2022 走看看