Qu'est-ce qu'une exception d'état de moniteur illégale en Java ?
Qu'est-ce qu'une exception d'état de moniteur illégale en Java ?

Vidéo: Qu'est-ce qu'une exception d'état de moniteur illégale en Java ?

Vidéo: Qu'est-ce qu'une exception d'état de moniteur illégale en Java ?
Vidéo: Part 7 - POO Java EXCEPTIONS 2024, Peut
Anonim

Comme décrit par la documentation officielle, un IllegalMonitorStateException peut se produire lorsqu'un thread tente d'attendre sur un objet surveiller , ou pour notifier d'autres threads en attente de cet objet surveiller , lorsque ce thread ne possède pas le surveiller Dans la question. En d'autres termes, si l'objet.

Compte tenu de cela, comment gérez-vous Java Lang IllegalMonitorStateException ?

Afin de traiter l'IllegalMonitorStateException vous devez vérifier que toutes les invocations des méthodes wait, notify et notifyAll ont lieu uniquement lorsque le thread appelant possède le moniteur approprié. La solution la plus simple consiste à enfermer ces appels dans des blocs synchronisés.

On peut également se demander, qu'est-ce qu'IllegalThreadStateException en Java ? IllegalThreadStateException . Le système d'exécution lance un IllegalThreadStateException lorsque vous appelez une méthode sur un thread et que l'état de ce thread ne permet pas cet appel de méthode. Par exemple, IllegalThreadStateException est levée lorsque vous appelez suspend() sur un thread qui n'est pas "Runnable".

Compte tenu de cela, qu'est-ce que le moniteur d'objets en Java ?

Bref, un surveiller est une installation qui moniteurs l'accès des fils à la salle spéciale. Il garantit qu'un seul thread peut accéder aux données ou au code protégés. 2. Comment est-il mis en œuvre dans Java ? Dans le Java machine virtuelle, chaque objet et la classe est logiquement associée à un surveiller.

Qu'est-ce que Java Lang IllegalStateException ?

classe publique IllegalStateException étend RuntimeException. Signale qu'une méthode a été invoquée à un moment illégal ou inapproprié. En d'autres termes, le Java environnement ou Java l'application n'est pas dans un état approprié pour l'opération demandée.

Conseillé: