synchronized 与 java.util.concurrent.locks.ReentrantLock 的区别,正确的是?

Java

  1. A.ReentrantLock 支持可中断、超时、公平锁与多 Condition,需 finally 中 unlock
  2. B.synchronized 不可重入,同一线程再次进入会死锁
  3. C.ReentrantLock 的性能在任何场景下都一定比 synchronized 更高,因此应该全面替代 synchronized
  4. D.synchronized 仅可修饰方法,写在代码块上会编译报错