生产者消费者问题
程序员文章站
2022-03-27 10:07:52
关系分析缓冲区应对诸进程实现互斥访问(互斥关系)不允许生产者进程向满缓冲池投放数据(同步关系)不允许消费者进程从空缓冲池取走数据(同步关系)伪代码(Python描述)def producer(): while True: # 先申请一个空缓冲池,向里面写入数据 wait(empty) mutex = 0 ... # 临界区代码 mutex = 1 # 写入完毕,空缓冲池个数-1,即非空缓冲...
关系分析
- 缓冲区应对诸进程实现互斥访问(互斥关系)
- 不允许生产者进程向满缓冲池投放数据(同步关系)
- 不允许消费者进程从空缓冲池取走数据(同步关系)
伪代码(Python描述)
def producer():
while True:
# 先申请一个空缓冲池,向里面写入数据
wait(empty)
mutex = 0
... # 临界区代码
mutex = 1
# 写入完毕,空缓冲池个数-1,即非空缓冲池个数+1
signal(full)
def consumer():
while True:
# 向非空缓冲池读数据
wait(full)
mutex = 0
... # 临界区代码
mutex = 1
# 读完数据后,空缓冲池数量+1
signal(empty)
if __name__ == '__main__':
# 实现对缓冲区的互斥访问
mutex = 1
# 空缓冲池和非空缓冲池
empty, full = n, 0
本文地址:https://blog.csdn.net/qq_45202835/article/details/111936109
下一篇: 香蕉有点黑心了还能吃吗