Maison > Java > javaDidacticiel > En Java, peut-on appeler la méthode wait() sans acquérir le verrou ?

En Java, peut-on appeler la méthode wait() sans acquérir le verrou ?

WBOY
Libérer: 2023-09-03 17:21:07
avant
786 Les gens l'ont consulté

En Java, peut-on appeler la méthode wait() sans acquérir le verrou ?

Vous ne pouvez pas appeler la méthode wait() sans acquérir le verrou. En Java, une fois le verrou acquis, il faut appeler la méthode wait() sur l'objet (peut être avec ou sans timeout). Si nous essayons d'appeler la méthode wait() sans acquérir le verrou, elle peut lever l'exception java.lang.IllegalMonitorStateException.

Exemple

public class ThreadStateTest extends Thread {
   public void run() {
      try {
<strong>         </strong>wait(1000);
      } catch(InterruptedException ie) {
         ie.printStackTrace();
      }
   }
   public static void main(String[] s) {
      ThreadStateTest test = new ThreadStateTest();
<strong>      </strong>test.start();
   }
}
Copier après la connexion

Dans l'exemple ci-dessus, nous devons appeler la méthode wait() sans acquérir le verrou, ce qui générera une IllegalMonitorStateException au moment de l'exécution. Pour résoudre ce problème, nous devons acquérir le verrou avant d'appeler la méthode wait() et déclarer la méthodesynchronisée run().

sortie

Exception in thread "Thread-0" java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at ThreadStateTest.run(ThreadStateTest.java:4)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal