EN JP CN

SYNCH.NESTED

SYNCH.NESTED

同期化されたメソッドが同一のオブジェクトに対して別の同期化されたメソッドを呼び出す場合、同期の問題は発生しませんが、パフォーマンスに悪影響があります。このエラーは、非 static メソッドに対して報告されます。

例 1

12     public class MyClass {
13         public synchronized List getElements() {
14             return internalGetElements();
15         }
16         synchronized List internalGetElements() {
17             List list = new ArrayList();
18             // calculate and return list of elements
19             return list;
20         }
21         // ...
22     }

SYNCH.NESTED が 14 行目に対して報告されています。同期化されたメソッドが同じロックを保持する別の同期化されたメソッド 'internalGetElements' を呼び出しています。