条件Condition接口可以简单的理解为是wait和notify的升级版,通过与Lock的使用结合起来,能完成在对象上创建多重等待集合的功能。使用Lock的newCondition方法可以获取一个针对特定Lock实例的Condition对象。

Condition声明了如下的重要方法来实现其功能:1.await方法在接收到唤醒信号之前会一直等待(可以被中断)。2.await(long time,TimeUnit unit)方法指定了等待时间,其他功能同上一个方法。3.awaitUninterruptibly( )在接收到唤醒信号之前一直等待。4.signal方法用来唤醒一个等待中的线程。5.signalAll方法用来唤醒所有等待中的线程。Condition接口下的其它方法请大家参考java doc文档,这里就不一一列举了。

线程二十一:条件

线程二十一:条件

线程二十一:条件

线程二十一:条件

线程二十一:条件

线程二十一:条件

例子描述了一个经典的生产者-消费者的实例,采用了Lock和Condition来代替前面的synchronized组合wait-notify,效果一样能满足生产者-消费者的要求。

参考链接

相关文章:

  • 2021-07-17
  • 2021-12-12
  • 2022-01-23
  • 2021-10-07
  • 2022-12-23
  • 2021-08-12
  • 2021-06-03
  • 2021-07-07
猜你喜欢
  • 2022-12-23
  • 2021-06-22
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
相关资源
相似解决方案