zoukankan      html  css  js  c++  java
  • 生产者-消费者模型(自定义类 与函数 2种实现方式)

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    from threading import Thread
    import time
    from Queue import Queue
    import random
    
    class Producer(Thread):
    
        def __init__(self,name,que):
            super(Producer,self).__init__()
            self.name = name
            self.que = que
    
        def run(self):
            while True:
                if self.que.qsize < 3:
                    self.que.put('一个包子')
                    print '生产了一个包子'
                else:
                    print '队列里的包子大于3'
                    time.sleep(random.randrange(5))
    
    class Consumer(Thread):
    
        def __init__(self,name,que):
            super(Consumer,self).__init__()
            self.name = name
            self.que = que
    
        def run(self):
            while True:
                try:
                    self.que.get_nowait()
                    print '消费了一个包子'
                except Exception:
                    print '没有包子了'
                time.sleep(random.randrange(2))
    
    que = Queue()
    
    for i in range(2):
        name = "生产者%d"%i
        p1 = Producer(name,que)
        p1.start()
    
    
    for i in range(3):
        name = "消费者%d"%i
        c1 = Consumer(name,que)
        c1.start()
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    from threading import Thread
    import time
    from Queue import Queue
    import random
    
    def  Producer(name,que):
        while True:
            if que.qsize < 3:
                que.put('一个包子')
                print '生产了一个包子'
            else:
                print '队列里的包子大于3'
                time.sleep(random.randrange(2))
    
    def Consumer(name,que):
        while True:
            try:
                que.get_nowait()
                print '消费了一个包子'
            except Exception:
                print '没有包子了'
            time.sleep(random.randrange(2))
    
    que = Queue()
    
    for i in range(10):
        name = "生产者%d"%i
        p1 = Thread(target=Producer,args=(name,que))
        p1.start()
    
    
    for i in range(3):
        name = "消费者%d"%i
        c1 = Thread(target=Consumer,args=(name,que))
        c1.start()
  • 相关阅读:
    公众号我也快看不下去了
    朋友圈我快看不下去了!
    微信5.2
    微信支付类目及费率
    ACCESS TOKEN
    关于微博认证和微信认证
    重定向
    微信公众账号支付商户接入指南
    微信公众平台开发(94) 违章查询
    [Servlet]什么是Servlet
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/5259023.html
Copyright © 2011-2022 走看看