“Reader-Writer”问题
问题描述
- 问题描述
- 问题分析
-
- 关系分析
- 求解思路
- 信号量设置
- 问题解决
-
- 方案一
- 方案二
- 对比
- Java实现
有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会冲突,但如果某个写进程和其他进程同时访问共享数据时可能会导致数据不一致的错误。
问题分析 关系分析此问题的描述中可以分析出4条要求:
- 多个读者可以同时不冲突地读取文件内容
- 写者只能单个向文件中写信息
- 任一写者在完成写操作之前不允许其他读者或写者工作
- 写者执行写操作之前,必须等待其他读者或写者退出
因此,直观分析一下可知,读者和写者之间是互斥的,写者之间也是互斥的,读者之间不存在互斥但有同步关系。
求解思路读者和写者两类进程。 写者进程和任何进程互斥。 读者必须实现与写者的互斥和其他读者的同步。 针对读者的