IntelliJ
の作業中に、スレッドがロックを保持しているかどうかを確認できません。
Eclipse GUIには、スレッドに対してlock
のようなアイコンがあり、そのlock
を保持していることがわかります。
以下のコードスナップショットでは、私のスレッドはnotifyElementAdded()
にあり、ロックを保持していますが、スレッドスタックにはそのようなアイコンやIntellij
からの通知はありません
だから私の質問はIntelliJ GUIで同じことを確認する方法です。
これは、IntelliJがGUI製品にこれを含めるための潜在的な機能要求になる可能性があります。
プログラムでこれを確認するには、現在のスレッドが指定されたオブジェクトのモニターロックを保持している場合にのみtrueを返すJava.lang.Thread.holdsLock()メソッドを使用できます。
public static boolean holdsLock(Object obj)
参照用のrunメソッドのスニペットの下に、
public void run() {
/* returns true if thread holds monitor lock */
// returns false
System.out.println("Holds Lock = " + Thread.holdsLock(this));
synchronized (this) {
// returns true
System.out.println("Holds Lock = " + Thread.holdsLock(this));
}
}