java condition

家电维修 2022-11-07 12:21www.17kangjie.cn家电维修培训

java condition是怎样的呢?下面长沙家政网就让我们一起来了解一下吧

condition 介绍

Condition是在java1.5中才出现的,它主要是用来替代传统的Object的ait()、notify()实现线程间的协作,相比较使用Object的ait()、notify(),使用Condition的aait()、signal()这种方式实现线程间协作会更加安全与高效。

一般情况下是比较推荐使用Condition的,并且阻塞队列实际上也就是使用了Condition来模拟线程间的协作。

Condition其实就是个接口,基本的方法就是aait()与signal()方法;

Condition比较依赖于Lock接口,生成一个Condition的基本代码,即lock.neCondition()。

若是想要调用Condition的aait()和signal()方法,都必须要在lock保护之内,也就是说必须要在lock.lock()和lock.unlock之间才能够使用的。

说明

1、condition中的aait()对应Object的ait();

2、Condition中的signal()对应Object的notify();

3、Condition中的signalAll()对应Object的notifyAll()。

需要注意的是,Condition的执行方式,是当在线程Consumer中调用aait方法后,线程Consumer将会释放锁,并且将自己沉睡,等待被唤醒,线程Producer获取到锁之后,就会开始运行,完毕后,会调用Condition的signalall方法,唤醒线程Consumer,线程Consumer即可恢复执行。

以上就是长沙家政网小编的分享了,希望能够帮助到大家。

Copyright © 2016-2025 www.17kangjie.cn 长沙家政网【一起康洁家政】 版权所有 Power by