原文: synchronized 通过 JVM 指令 monitorenter 和 monitorexit,来确保加锁**代码块内**的指令**不会**被重排。 错误点: synchronized 不禁止内部重排,而是通过 monitorenter / monitorexit 在进入和退出临界区时引入内存屏障,防止跨锁边界的指令重排。