zoukankan      html  css  js  c++  java
  • 生产者消费者模型

     1 #!/usr/bin/env python
     2 # coding:utf-8
     3 from threading import Thread
     4 from Queue import Queue
     5 import time 
     6 
     7 
     8 
     9 
    10 class Procuder(Thread):
    11     def __init__(self,name,queue):
    12         self.__Name = name
    13         self.__Queue = queue #容器
    14         super(Procuder,self).__init__() #执行父类构造函数
    15     def run(self):
    16         while True:
    17             if self.__Queue.full():
    18                 time.sleep(1)
    19             else:
    20                 self.__Queue.put('商品')
    21                 time.sleep(1)
    22                 print '%s 生产了一个商品' %(self.__Name,)            
    23             
    24             
    25         #Thread.run(self)
    26 
    27 class Consumer(Thread):
    28     
    29     def __init__(self,name,queue):
    30         self.__Name = name
    31         self.__Queue = queue #容器
    32         super(Consumer,self).__init__() #执行父类构造函数
    33     def run(self):
    34         while True:
    35             if self.__Queue.empty():
    36                 time.sleep(1)
    37             else:
    38                 self.__Queue.get()
    39                 time.sleep(1)
    40                 print '%s 消费了一个商品' %(self.__Name,)
    41 que = Queue(maxsize=100)
    42 
    43 Dylan1 = Procuder('Dylan1',que)
    44 Dylan1.start()
    45 Dylan2 = Procuder('Dylan2',que)
    46 Dylan2.start()
    47 Dylan3 = Procuder('Dylan3',que)
    48 Dylan3.start()
    49 
    50 for item in range(20):
    51     name = 'Elaine%d' %(item,)
    52     Elaine = Consumer(name,que)
    53     Elaine.start() 
  • 相关阅读:
    普通javaBean获取Spring托管对象
    java 线程安全问题
    MySQL之alter语句用法总结
    Maven pom.xml配置
    Srping框架初识
    win7(64位)下memcache安装时报错“ failed to install service or service already installed”
    activemq 使用
    elasticsearch plugin
    logback.xml 实例
    Intellij IDEA 插件
  • 原文地址:https://www.cnblogs.com/dylan-wu/p/6085770.html
Copyright © 2011-2022 走看看