1、 synchronized vs ReentrantLock 区别
synchronized | ReentrantLock | |
1.用法 | 修饰方法、(普通、静态)代码块 | 代码块中创建对象 |
2.获取方式 | 自动 | 手动lock、unlock |
3.锁类型不同 | 非公平 | 可指定,默认非公平 |
4.响应中断不同 | 不能响应。死锁会一直等待 | 可响应,并释放锁 |
5.底层实现 | jvm层级监视器 | AQS:CAS轻量级锁->自旋锁-> |
1、 synchronized vs ReentrantLock 区别
synchronized | ReentrantLock | |
1.用法 | 修饰方法、(普通、静态)代码块 | 代码块中创建对象 |
2.获取方式 | 自动 | 手动lock、unlock |
3.锁类型不同 | 非公平 | 可指定,默认非公平 |
4.响应中断不同 | 不能响应。死锁会一直等待 | 可响应,并释放锁 |
5.底层实现 | jvm层级监视器 | AQS:CAS轻量级锁->自旋锁-> |