您的位置:首页 > 编程语言 > Python开发

python生产者与消费者问题

2016-06-29 16:24 489 查看
#!/usr/bin/env python

#_*_ coding:utf-8 _*_

from threading import Thread

import time

from Queue import Queue

class producer(Thread):

    #producer __init__ 

    def __init__(self,name,queue):

        self.__Name = name

        self.__Queue = queue

        super(producer,self).__init__()

    def run(self):

        #判断队列里面是不是满了,如果是的休息1秒,如果不是的话那么就向里面放包子

        while True:

            if self.__Queue.full():

                time.sleep(1)

            else:

                self.__Queue.put('baozi')

                time.sleep(1)

                print '%s create a baozi ' %(self.__Name,)

class Consumer(Thread):

    

    def __init__(self,name,queue):

        self.__Name = name

        self.__Queue = queue

        super(Consumer,self).__init__()

    def run(self):

        #判断队列里面是不是空的,如果是空的,休息一秒,如果不是的话就吃包子

        while True:

            if self.__Queue.empty():

                time.sleep(1)

            else:

                self.__Queue.get()

                time.sleep(1)

                print '%s eat a baozi' %(self.__Name,)

                

#设置队列

                

que = Queue(maxsize=100)   

#实例化producer

p1 = producer('cooker1',que)

p1.start()

p2 = producer('cooker2',que)

p2.start()

p3 = producer('cooker3',que)

p3.start()

#实例化consumer

for item in range(20):

    name = 'eater %d' %(item,)

    eater  = Consumer(name,que)

    eater.start()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: