请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。

答案解析

相同:都能实现互斥、可重入。不同:Synchronized由JVM管理,语法简单,功能有限;ReentrantLock是API层实现,支持公平锁、可中断、可超时、条件变量等高级功能。