操作系统生产者消费者python
时间: 2024-10-08 20:24:17 浏览: 20
操作系统中的生产者消费者模型是一种经典的设计模式,它模拟了现实世界中两个角色之间的交互,即生产者(Producer)负责生成数据或任务,而消费者(Consumer)负责处理这些数据或完成任务。在Python中,可以使用线程、队列(如`queue`模块)和锁(如`threading.Lock`)来实现这个模型。
以下是简单的生产者消费者示例:
```python
import threading
from queue import Queue
# 定义生产者函数
def producer(queue):
for i in range(10):
item = f"Produced item {i}"
print(f"{threading.current_thread().name} produced {item}")
queue.put(item)
# 等待一段时间让消费者有时间处理
time.sleep(1)
# 定义消费者函数
def consumer(queue):
while True:
item = queue.get()
if item is None: # 生产者结束标志
break
print(f"{threading.current_thread().name} consumed {item}")
# 消耗完物品后放回队列以便下一轮消费
queue.task_done()
# 创建队列和线程
queue = Queue()
producer_thread = threading.Thread(target=producer, args=(queue,))
consumer_thread = threading.Thread(target=consumer, args=(queue,))
# 启动线程
producer_thread.start()
consumer_thread.start()
# 等待生产者完成所有工作并设置结束标志
for _ in range(10):
queue.put(None)
queue.join()
# 关闭线程
producer_thread.join()
consumer_thread.join()