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);
}