首页 > 解决方案 > 线程子类中的同步方法

问题描述

我有一个扩展线程的类,并且在其 run() 中调用了另一个方法。我希望该方法同步,线程子类中定义的方法是否可以同步?

标签: javamultithreadingsynchronized

解决方案


synchronized不是方法签名的一部分。它只是将方法体包装在一个块中的简写形式,该块在this或上同步TheEnclosingClass.class

这对子类中的方法有几个后果:

  • 您可以使覆盖方法同步,即使覆盖的方法不是。
  • 如果您使覆盖方法同步,则​​它不会“继承”被覆盖方法的同步性。如果您也希望它同步,则必须明确执行此操作。

推荐阅读