不完全一样,但本质都是“无效计算”消耗CPU,只是各自的“无效计算”形式不同。
为了让你彻底看透,我从底层机制和CPU消耗路径两个维度来拆解。
一、先看结论:AQS 和synchronized的“耗电”路径不同
| 对比维度 | AQS锁(如ReentrantLock) | synchronized(重量级锁) |
|---|---|---|
| CPU消耗大头 | 用户态 (us) | 内核态 (sy) |
| 主要耗电动作 | CAS自旋(空转)+ 大量读/写内存屏障 | 操作系统线程阻塞/唤醒(上下文切换) |
| 现象 | CPU被业务线程自己吃满 | CPU被操作系统内核调度吃满 |
| Top特 |