- 不同点
- synchronized
- synchronized是Java内置的关键字,由JVM控制的
- 用在方法上或代码块上
- 是非公平锁
- 不需要手动解锁
- 不支持超时
- 不可以中断
- 不支持多条件Condition
- 以前性能不如ReentrantLock,现在性能差不多
- ReentrantLock
- JUC类库提供
- 使用起来比synchronized更灵活
- 支持公平锁和非公平锁
- 需要手动解锁
- 可以设置超时时间,避免死锁
- 可以中断
- 可以支持多条件Condition
- 现在性能基本一致
- synchronized
- 相同点
- 都属于可重入锁
- 现在性能也基本一致