web-dev-qa-db-fra.com

Comment vérifier si le thread contient le moniteur dans IntelliJ?

En travaillant sur IntelliJ, je ne peux pas vérifier si le thread tient le verrou ou non.

Sur l'interface graphique Eclipse, il y a une icône semblable à lock contre le thread, nous indiquant qu'elle contient que lock.

Dans l'instantané de code ci-dessous, mon thread est à notifyElementAdded() et tient le verrou cependant, dans une pile de threads, il n'y a pas d'icône ou d'indication de Intellij

Ma question est donc de savoir comment vérifier la même chose sur IntelliJ GUI.

enter image description here

8
Joker

Cela peut être une demande de fonctionnalité potentielle pour IntelliJ pour l'inclure dans son produit GUI.

Par programme, pour vérifier cela, vous pouvez utiliser la méthode Java.lang.Thread.holdsLock () qui renvoie true si et seulement si le thread actuel détient le verrou du moniteur sur l'objet spécifié

public static boolean holdsLock(Object obj)

Ci-dessous l'extrait de la méthode d'exécution pour référence,

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));
   }
 }
0
Vignesh T I