如何确保已重写的方法已同步

ljb*_*ade 25 java synchronization class thread-safety synchronize

我有一类线程安全的公共代码.

该类中的一个方法是抽象的,需要为不同的实现重写.

我需要确保或至少向其他开发人员标记此方法的所有实现都需要是线程安全的.

做这个的最好方式是什么?

这个效果有关键字或注释吗?

我已经尝试过,abstract synchronized但不允许使用关键字组合.

ysh*_*vit 27

你不能直接这样做.你可以做的一件事是让方法具体,但是调用一个抽象方法:

public synchronized final void foo() {
    doFoo();
}
protected abstract void doFoo();
Run Code Online (Sandbox Code Playgroud)

这样,doFoo()将始终*在foo()建立的同步下调用.

*除非有人直接调用它,所以你应该命名并记录它,以明确它们不应该.

  • 轻微细化:使公共方法最终. (11认同)