先来一个ReentrantLock 与 Syncronized的比较
| \ | ReentrantLock | Syncronized |
|---|---|---|
| 锁实现机制 | 依赖AQS | 监视器模式(monitor) |
| 灵活性 | 支持响应中断、超时、尝试获取锁 | 不灵活 |
| 释放形式 | 必须显式调用unlock()释放锁 | 自动释放监视器 |
| 锁类型 | 非公平锁&公平锁 | 非公平锁 |
| 条件队列 | 可关联多个条件队列 | 关联一个条件队列 |
| 可重入性 | 可重入 | 可重入 |
代码的世界学无止尽
| \ | ReentrantLock | Syncronized |
|---|---|---|
| 锁实现机制 | 依赖AQS | 监视器模式(monitor) |
| 灵活性 | 支持响应中断、超时、尝试获取锁 | 不灵活 |
| 释放形式 | 必须显式调用unlock()释放锁 | 自动释放监视器 |
| 锁类型 | 非公平锁&公平锁 | 非公平锁 |
| 条件队列 | 可关联多个条件队列 | 关联一个条件队列 |
| 可重入性 | 可重入 | 可重入 |
支付宝