使用信号量解决读者写者问题--写者优先

本文详细介绍了如何利用信号量解决读者写者问题,并以写者优先为策略。通过信号量rsem和writecount的配合,确保在有写进程时阻止新的读进程,并使用信号量y来协调写进程之间的竞争,使得写进程能够优先执行,同时在所有写进程完成后再允许读进程进行读操作。
摘要由CSDN通过智能技术生成

//写者优先
int readcount=0 , writecount=0;
semaphore x = 1, y = 1, z = 1, wsem = 1 , rsem = 1;
void reader()
{
    while(true){
        semWait(z);//z信号用来保证阻塞在rsem信号中排队的读者至多只有一个。其余的阻塞在z上。
            semWait(rsem);
                semWait(x);//保证下面3句操作的原子性
                    readcount ++;
                    if(readcount == i)
                        semWait(wsem);
                semSignal(x);
         
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值