专门考虑Java,假设我有锁对象
Lock lock = new ReentrantLock();
Condition cond = aLock.newCondition();
public void a(){
lock.lock();
while(available == false){
//available is some boolean from somewhere
cond.await();
}
cond.signal();
lock.unlock();
}
我不知道这是如何工作的。如果我在cond.await()
内时正在呼叫void a()
,那么还要在同一cond.signal()
内也呼叫void a()
,如何在void a()
中得到通知?我的意思是说如果signal
在循环之后,我将如何脱离循环。似乎是无限的情况。
我从某处复制了此代码,所以这就是我要问的原因。谢谢