我正在调试一个程序,我通过将同步放入 2 种不同的方法解决了这个错误。奇怪的是,在此之前,我使用过锁,但没有成功。
public void method()
{
lock.lock(); //lock
if(nReaders > 0){
readers.await(); }//await
nReaders++;
...
nReaders--;
readers.signal(); //signal
lock.unlock(); //lock
}
我认为这相当于这个
public synchronized void method(){}
但不幸的是,情况似乎并非如此......我在这里错过了什么?