线程同步:Condition

版权声明:本博客为记录本人学习过程而开,内容大多从网上学习与整理所得,若侵权请告知! https://blog.csdn.net/Fly_as_tadpole/article/details/85808890

使用Synchronized关键字(synchronized方法或者synchronized代码块)来保证线程间同步,则系统中存在同步监视器(显式或者隐式),可以使用wait()、notify()、notifyAll()来协调线程通信。

但是当我们直接使用Lock对象来保证同步的话,则系统中就不存在同步监视器一说。也就不能使用上述的几个方法。

那怎么办呢?

当使用Lock对象保证同步的话,JAVA提供了一个Condition的类来协调线程通信。这个Conditon对象必须要绑定到一个Lock对象上。

Lock lock = new Lock();
Condition cond = lock.newCondition();

类似于Synchronized关键字提供的那些方法,Condition类也提供了一些方法来协调线程间通信。

await()

signal()

signalAll()

这三个方法的作用与之前的那三个方法类似。 

猜你喜欢

转载自blog.csdn.net/Fly_as_tadpole/article/details/85808890
今日推荐