操作系统生产者消费者问题?

生产者消费者问题,缓冲区作为临界资源,是某一时刻只能有一个生产者或者消费者进程对缓冲区操作,还是某一时刻可以有一个生产者+一个消费者对缓冲区操作。我知道同类角色直接(如多个生产者)是互斥的,那么不同角色如生产者消费者可以同时存在吗?

image.png
image.png

阅读 1.7k
2 个回答

生产者、消费者都会修改缓冲区,所以同时只能有一个操作。

只有不同的只读操作才可以同时进行。

1.问:生产者消费者问题,缓冲区作为临界资源,是某一时刻只能有一个生产者或者消费者进程对缓冲区操作,还是某一时刻可以有一个生产者+一个消费者对缓冲区操作
答:某一时刻只能有一个生产者或者消费者进程对缓冲区操作
2.问:不同角色如生产者消费者可以同时存在吗?
答:不能

能够想到是 互斥锁(Mutex):它的作用是:某同一时刻只能有一个线程对缓冲区操作。
读写锁(rwLock):它的作用是:某同一时刻可以同时读,但不允许同时读写,也不允许同时写。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题