ReentrantLock与synchronized

当需要一些高级功能时才应使用ReentrantLock,这些功能包括:可定时的、可轮询的与可中断的锁获取操作,公平队列,以及非块结构的锁。另外ReentrantLock可以有多个Condition对象。

其他情况应该优先使用synchronized

synchronized的优点:

1. 不用手动释放锁,更安全

2. 线程转储中能给出栈帧信息,能够检测和识别放生死锁的线程

3. synchronized是JVM的内置属性,能够执行一些优化,例如锁消除优化

原文地址:https://www.cnblogs.com/drizzlewithwind/p/6409883.html