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

python多线程生产消费

2017-09-24 15:14 162 查看
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from threading import Thread
from Queue import  Queue
import time

class Producer(Thread):

def __init__(self,name,queue):
self.__name = name
self.__queue = queue
super(Producer,self).__init__()

def run(self):
while 1:
if self.__queue.full():
time.sleep(1)
else:
self.__queue.put('bread')
time.sleep(1)
print '%s produce a bread' %(self.__name,)

class Consumer(Thread):

def __init__(self,name,queue):
self.__name = name
self.__queue = queue
super(Consumer,self).__init__()

def run(self):
while 1:
if self.__queue.empty():
time.sleep(1)
else:
self.__queue.get()
time.sleep(1)
print '%s eat a bread' % (self.__name,)

que = Queue(maxsize=100)

for p in range(3):
name = 'P%d' % (p,)
temp = Producer(name, que)
temp.start()

for item in range(20):
name = 'C%d' % (item,)
temp = Consumer(name, que)
temp.start()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐