Condition是在java1.5才出现。它用来替换传统的 wait(), notify()实现线程之间的协作。但是更加强大。

Condition用 await(), signal, signalAll方法替代wait(), notify()。假如用wait,notify,有三个线程调用一个对象的某个方法,notify只能随机的唤醒一个线程,而不能指定唤醒某个线程,但是用condition的话,就可以唤醒指定的线程。可以看下面的例子。

condition的await,signal和 wait,notify都需要在锁之间运行。

contidion也被用来实现阻塞队列。

condition是通过锁创建出来的。基本代码是 ReentrantLock.newCondition().

lock.lock();
condition.await();
lock.unlock();
View Code

相关文章:

  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2021-11-07
  • 2021-11-01
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-21
  • 2021-09-12
  • 2021-06-06
  • 2022-02-02
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案