Synchronization 如果在读写器问题中修改读写器进程,会发生什么情况?

Synchronization 如果在读写器问题中修改读写器进程,会发生什么情况?,synchronization,thread-synchronization,readerwriterlock,Synchronization,Thread Synchronization,Readerwriterlock,以下是读卡器进程的代码(可行代码) 以下是作者的写作过程 writer(){ while(true){ P(OKtoacessDB); accessDB; V(OKtoacessDB); } } 如果更换(在读卡器中)会有什么结果 发件人: if(readerCounter == 0) V(OKtoacessDB); V(mutex); 致: 谢谢大家! V(互斥); 互斥锁被锁定以独占方式访问readerCounter。如果您这样更改代码:

以下是读卡器进程的代码(可行代码)

以下是作者的写作过程

writer(){
while(true){
    P(OKtoacessDB);
    accessDB;
    V(OKtoacessDB);
   }
}
如果更换(在读卡器中)会有什么结果

发件人:

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

谢谢大家!

V(互斥); 互斥锁被锁定以独占方式访问readerCounter。如果您这样更改代码:

if(readerCounter == 0){
     V(OKtoaccessDB);
     V(mutex);
}
只有当readerCounter为零时,才能释放互斥锁。在所有其他情况下,读取器将退出而不解锁互斥锁。这本质上意味着,当readerCounter不为零时,第一个退出读取调用的读取器将在不解除互斥锁的情况下离开。这将阻止所有后续读卡器继续进行

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