python--produce consumer model

字数 3阅读 111

for example :

#!/usr/bin/env python
#coding:utf-8
#author:Bing

from threading import Thread
import time,Queue,random

que = Queue.Queue(maxsize=100)

class Product(Thread):
    def __init__(self,name,que):
        super(Product,self).__init__()
        self.name = name
        self.que = que

    def run(self):
        while True:
            if self.que.full():
                time.sleep(1)
            else:
                self.que.put("baozi")
                print "%s:made a baozi...===" % self.name

class Consumer(Thread):
    def __init__(self,name,que):
        super(Consumer,self).__init__()
        self.name = name
        self.que = que

    def run(self):
        while True:
            if self.que.empty():
                time.sleep(1)
            else:
                self.que.get()
                print "%s:got a baozi" % self.name

#three productor
t1 = Product("chef1",que)
t2 = Product("chef2",que)
t3 = Product("chef3",que)
t1.start()
t2.start()
t3.start()

#twenty consumer
for item in range(20):
    name = "customer%d"%(item,)
    temp = Consumer(name,que)
    temp.start()

推荐阅读更多精彩内容