写优先
int count=0;//读者数量
int mutex=1;//对count的互斥信号量
int rw=1;//读写互斥
int w=1;//写者等待队列
void wrriter
{
while(1)
{
p(w);//写者等待队列为空
p(rw);//读写互斥
wrrite;
v(rw);
v(w);
}
}
void reader()
{
while(1)
{
p(w);//没有写者等待
p(mutex)
if(count==0)
p(rw);//读写互斥
count++;
v(mutex);
v(w);//写者可以申请了
reading;
p(mutex)
count--;
if(count==0)
v(rw);//没有读者的话,那么可以开始写了
v(mutex);
}
}