クラス間で同期ブロックを使用する方法を知りたいです。つまり、複数のクラスでブロックを同期したいのですが、それらはすべて同じオブジェクトで同期しています。これを行う方法を考えた唯一の方法は次のとおりです。
//class 1
public static Object obj = new Object();
someMethod(){
synchronized(obj){
//code
}
}
//class 2
someMethod(){
synchronized(firstClass.obj){
//code
}
}
この例では、最初のクラスで同期する任意のオブジェクトを作成し、2 番目のクラスでもそれを静的に参照して同期しました。ただし、これは私には悪いコーディングのようです。これを達成するためのより良い方法はありますか?