synchronized(this)锁住的是当前实例对象本身,而非类或继承关系;无论父类引用指向子类实例还是多态调用,锁都绑定具体对象,不同实例互不干扰,类锁需显式使用Class对象。
synchronized(this) 锁住的不是“整个子类”,而是当前正在执行该同步块或同步方法的那个具体实例对象,无论它是父类类型引用还是子类类型实例。
Java 中 synchronized(this) 的本质是获取当前对象(即 this 指向的堆中那个具体对象)的内置锁(monitor lock)。这个锁与对象身份绑定,和它的编译时类型、运行时类型、是否被多态引用完全无关。
多态只影响方法调用的解析(动态绑定),不影响锁机制。例如:
如果你要控制对某个类级别资源的互斥访问(比如静态变量、类初始化逻辑),必须显式使用类锁:
立即学习“Java免费学习笔记(深入)”;
有人误以为“子类继承了 synchronized 方法就等于锁住了子类”,其实:
tplink路由器默认密码是多少(tplink路由器默认密码详解)
tplink路由器默认密码怎么查看(tplink路由器默认密码查看方法)
tplink无线路由器密码怎么重置(tplink无线路由器密码重置方法)
手机如何设置tplink无线路由器密码和密码共享功能(手机设置tplink无线路由器密码和密码共享功能方法)
tplink无线路由器密码忘记了怎么办(tplink无线路由器密码忘记了解决方案)
tplogin路由器可以无线桥接么(TPLink路由器是否支持无线桥接功能)