如果在读写器问题中修改读取器进程会发生什么?

问题描述 投票:0回答:1

这是阅读器过程的代码(可行的代码)

reader(){
while(true){
P(mutex);
readerCounter++;
     if((readerCount == 1)
     P(OKtoaccessDB);
V(mutex);
accessDB;
readerCounter--;
if(readerCounter == 0)
     V(OKtoaccessDB);
V(mutex);
}
}

这是作者的过程;

writer(){
while(true){
    P(OKtoacessDB);
    accessDB;
    V(OKtoacessDB);
   }
}

如果替换(在阅读器中),结果如何?>

发件人:

if(readerCounter == 0)
     V(OKtoacessDB);
     V(mutex);

至:

if(readerCounter == 0){
     V(OKtoaccessDB);
     V(mutex);
}

谢谢!

这里是读取器进程的代码(可行代码)reader(){while(true){P(mutex); readerCounter ++; if((readerCount == 1)P(OKtoaccessDB); V(mutex); accessDB; readerCounter--; if(...

synchronization thread-synchronization readerwriterlock
1个回答
0
投票

V(mutex);互斥锁被锁定以专门访问readerCounter。如果您像这样更改代码:

© www.soinside.com 2019 - 2024. All rights reserved.