http://xhslink.com/XeFpYR

Untitled

synchronized ReentrantLock
实现方式 Java关键字(JVM 实现) Lock 实现类(JDK 实现)
适用范围 可修改方法或代码块 只能用于代码块
锁类型 可重入锁
非公平锁 可重入锁
默认非公平锁
也可以设置成公平锁
获取锁方式 自动获取锁 使用 lock() 手动获取锁
释放锁方式 自动释放锁 使用 unlock() 手动释放锁
释放锁操作务必放在 finally 中
状态获取 不能获取锁状态 可以获取锁状态
超时设置 不能设置超时时间 可以设置超时时间
响应中断 不能响应中断
等待的线程会一直等待下去 使用 lockInterruptibly() 可以响应中断
等待队列 只有一个等待队列 可以对应多个等待队列
主要优势 使用简单
完全交给 JVM 处理,可靠性高 比较灵活
在高并发场景下,性能较好