salut: j'utilise visualVM connecter un multi thread Java application, le fil a 4 du statut, à savoir la course, dormir, attendre, Surveiller. Qu'est-ce Surveillance de l'état signifie? Quelle est la différence entre attendre et Surveiller?
Réponses
Trop de publicités?Ces états sont les mêmes que mentionné dans l' Thread.State
enum. "D'attente" signifie, comme le dit la documentation:
Un thread est dans l'état d'attente en raison d'appeler l'une des méthodes suivantes:
- Objet.attendre sans délai d'attente
- Fil de discussion.rejoindre sans délai d'attente
- LockSupport.parc
"Monitor" est l' BLOCKED
de l'état, dans lequel le thread est en attente pour obtenir un verrou sur un objet (parce qu'il essaie de saisir un synchronized
bloc ou de la méthode, tandis qu'un autre thread est déjà titulaire de l'associé de verrouillage).
Moniteur sera le thread est en attente pour atteindre un verrou sur un objet. Par exemple, lorsqu'un thread est en cours d'exécution d'une méthode synchronisée et de l'autre on essaie de l'appeler sur le même objet, il ne sera pas en mesure de jusqu'à la première invocation de la méthode est fini. C'est parce que le premier thread a un moniteur ou un verrou sur l'objet, alors que le second doit attendre jusqu'à ce qu'il soit libéré.
À Partir D' Oracle Filetage Tutoriels:
"La synchronisation est construit autour d'un interne de l'entité connue sous le nom intrinsèques de verrouillage ou de moniteur de verrouillage. (La spécification de l'API fait souvent référence à cette entité simplement comme un "moniteur".) Intrinsèque des serrures de jouer un rôle dans les deux aspects de la synchronisation: l'application d'un accès exclusif à l'état d'un objet et de l'établissement de-passe-avant les relations qui sont essentielles à la visibilité."