//写者优先
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);
使用信号量解决读者写者问题--写者优先
最新推荐文章于 2025-05-04 19:29:46 发布