读者-写者问题是一个经典的并发程序设计问题,是经常出现的一种同步问题。计算机系统中的数据(文件、记录)常被多个进程共享,但其中某些进程可能只要求读数据(称为读者);另一些进程则要求修改数据(称为写者)。就共享数据而言,reader和writer是两组并发进程共享一组数据区,要求:
(1)允许多个读者同时执行读操作;
(2)不允许读者、写者同时操作;
(3)不允许多个写者同时操作。
1)读者优先
对于读者优先,应满足下列条件:
如果新读者到:
1、无读者、写者,新读者可以读;
2、有写者等待,但有其它读者正在读,则新读者也可以读;
3、有写者写 ,新读者等待。
如果新写者到: