条件变量和锁

时间:2018-09-06 05:09:43

标签: java multithreading concurrency operating-system locking

专门考虑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在循环之后,我将如何脱离循环。似乎是无限的情况。

我从某处复制了此代码,所以这就是我要问的原因。谢谢

0 个答案:

没有答案