星海

并发 · 单选题 · 第 15 题

Java 后端开发面试 · 第 15 题

synchronized 修饰一个静态方法时,锁住的是?

  1. A当前实例对象 this
  2. B方法所在的栈帧
  3. C不加任何锁
  4. D该类的 Class 对象

答案

D D. 该类的 Class 对象

解析

静态方法属于类,锁对象就是这个类的 Class 对象,所有实例共用同一把锁。修饰实例方法时锁的是 this,两者不是同一把锁,所以一个线程执行静态同步方法时,另一个线程仍可以执行实例同步方法。同步代码块锁的是括号里显式指定的对象。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。