python 生产者消费者设计类
时间: 2023-11-29 09:56:34 浏览: 28
下面是一个简单的生产者消费者类设计示例:
```python
from queue import Queue
from threading import Thread
class Producer:
def __init__(self, queue):
self.queue = queue
def produce(self, item):
self.queue.put(item)
class Consumer:
def __init__(self, queue):
self.queue = queue
def consume(self):
item = self.queue.get()
# 处理 item
self.queue.task_done()
class ProducerConsumer:
def __init__(self, num_producers, num_consumers):
self.queue = Queue()
self.producers = [Producer(self.queue) for i in range(num_producers)]
self.consumers = [Consumer(self.queue) for i in range(num_consumers)]
def start(self):
for producer in self.producers:
t = Thread(target=producer.produce, args=(item,))
t.daemon = True
t.start()
for consumer in self.consumers:
t = Thread(target=consumer.consume)
t.daemon = True
t.start()
self.queue.join()
```
这个类包括了三个子类:生产者,消费者和生产者消费者。Producer和Consumer类分别表示生产者和消费者,ProducerConsumer类则包含了一个队列和多个生产者和消费者线程。start方法启动所有线程,并在队列为空时阻塞程序。