编程实现生产者消费者问题
时间: 2024-02-27 08:55:00 浏览: 17
生产者消费者问题是一个经典的并发编程问题。下面是一种可能的解决方案:
```python
import threading
import queue
import time
# 创建一个共享的队列
queue = queue.Queue(maxsize=10)
# 生产者线程
class ProducerThread(threading.Thread):
def run(self):
while True:
# 如果队列满了,则等待
while queue.full():
time.sleep(1)
# 向队列中添加数据
num = time.time()
queue.put(num)
print(f"Produced {num}")
time.sleep(1)
# 消费者线程
class ConsumerThread(threading.Thread):
def run(self):
while True:
# 如果队列为空,则等待
while queue.empty():
time.sleep(1)
# 从队列中取出数据
num = queue.get()
print(f"Consumed {num}")
time.sleep(1)
# 创建并启动生产者和消费者线程
producer = ProducerThread()
consumer = ConsumerThread()
producer.start()
consumer.start()
```
在上面的代码中,我们使用了 Python 的 `queue` 模块来创建一个共享的队列。生产者线程不断向队列中添加数据,如果队列已满,则等待;消费者线程不断从队列中取出数据,如果队列为空,则等待。通过这种方式,我们实现了一个简单的生产者消费者模型。