【并发编程074】Lock锁的Condition接口是做什么的?

【并发编程074】Lock锁的Condition接口是做什么的?,第1张

Lock锁的Condition接口是做什么的?

任意一个Java对象, 都拥有一组监视器方法 (定义在java.lang.Object上) , 主要包括wait() 、 wait(long timeout)、 notify()以及notifyAll()方法, 这些方法与synchronized同步关键字配合, 可以 实现等待/通知模式 。 Condition接 口也提供了类似Object的监视器方法, 与Lock配合可以实现等 待/通知模式。

通过对比Object的监视器方法和Condition接口,可以更详细地了解Condition的特性

Condition定义了等待/通知两种类型的方法, 当前线程调用这些方法时, 需要提前获取到 Condition对象关联的锁 。 Condition对象是由Lock对象 (调用Lock对象的newCondition()方法) 创 建出来的, 换句话说, Condition是依赖Lock对象的。

当调用await()方法后, 当前线程会 释 放锁并在此等待, 而其他线程调用 Condition对象的signal()方法, 通知当 前线程后, 当前线程 才从await()方法 返回, 并且在返回前已经获取了锁。一个线程进入等待状态----释放锁— -线程被唤醒----线程获取锁----等待 状态结束。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/758135.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-01
下一篇2022-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存