Java ReentrantLock Condition如何实现并发控制原理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4220个文字,预计阅读时间需要17分钟。
一、前言在JDK中,除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁。除了synchronized外,ReentrantLock也是一个可用的选择。虽然ReentrantLock和synchronized在性能上没有显著区别,但ReentrantLock提供了更丰富的功能,使用起来更加灵活。以下是直接输出结果:
一、使用ReentrantLock代替synchronized
一、前言
Jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。
使用synchronized结合Object上的wait和notify方法可以实现线程间的等待通知机制。Condition同样可以实现这个功能,而且相比前者使用起来更清晰也更简单。前者是java底层级别的,后者是语言级别的,后者可控制性和扩展性更好。
与wait/notify区别
-
1.Condition能够支持不响应中断,而通过使用Object方式不支持。
-
2.Condition能够支持多个等待队列(new 多个Condition对象),而Object方式只能支持一个。
-
3.Condition能够支持超时时间的设置,而Object不支持。
本文共计4220个文字,预计阅读时间需要17分钟。
一、前言在JDK中,除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁。除了synchronized外,ReentrantLock也是一个可用的选择。虽然ReentrantLock和synchronized在性能上没有显著区别,但ReentrantLock提供了更丰富的功能,使用起来更加灵活。以下是直接输出结果:
一、使用ReentrantLock代替synchronized
一、前言
Jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。
使用synchronized结合Object上的wait和notify方法可以实现线程间的等待通知机制。Condition同样可以实现这个功能,而且相比前者使用起来更清晰也更简单。前者是java底层级别的,后者是语言级别的,后者可控制性和扩展性更好。
与wait/notify区别
-
1.Condition能够支持不响应中断,而通过使用Object方式不支持。
-
2.Condition能够支持多个等待队列(new 多个Condition对象),而Object方式只能支持一个。
-
3.Condition能够支持超时时间的设置,而Object不支持。

