- ReentrantLock(重入锁)与synchronize区别
- 可重入性:两个都是可以重入的进行锁的计数
- 锁的实现:ReentrantLock用的是程序实现(用户态),synchronized用的是JVM实现(内核态)
- 性能的区别:synchronized(轻量级锁,偏向锁)经过优化后和ReentrantLock性能差不多
- 功能区别:ReentrantLock更加的灵活(细粒度高),synchronized更加便利
- ReentrantLock(重入锁)独有的功能
- 可以指定是公平锁还是非公平锁
- 提供了一个Condition类,可以分组唤醒需要唤醒的线程
- 提供能够中断等待锁的线程的机制,lock.lockInterrupibly
1 | //ReentrantLock及Condition使用 |