- 读者与写者两组并发进程,共享一个文件
- 当两个或两个以上读进程同时访问共享数据时不会产生副作用,但是某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误
- 允许多个读者可以同时对文件执行读操作
- 只允许一个写进程往文件中写信息
- 任一写者在完成操作之前不允许其他读者或写者工作
- 写者执行写操作前,应让已有的读者和写着全部退出
- 简而言之
- 允许多个读者同时访问
- 写者与其他任何进程互斥
- 关键是想到用count变量来记录当前有几个读进程在访问文件
- 读者优先,只要有读者在读文件,写进程就会被阻塞
- 写进程可能会“饥饿”
- 通过增加一个信号量w,实现“写者优先”,或者称为“读写公平法”
- 巧妙~:)




