欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

生产者消费者问题

程序员文章站 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

相关标签: 操作系统