Citation de La machine virtuelle Java
Un thread de la machine virtuelle Java demande un verrou lorsqu'il arrive au début d'une région de surveillance. En Java, il existe deux types de régions de contrôle : les instructions synchronisées et les méthodes synchronisées.
Moniteur
Un moniteur est comparable à un bâtiment qui contient un r être occupée par un seul thread à la fois. La pièce contient généralement des données. Entre le moment où un thread entre dans cette pièce et le moment où il qu'elle quitte, elle dispose d'un accès exclusif à toutes les données de la salle. En entrant dans la salle s'appelle "entrer dans le moniteur". Entrer dans la pièce spéciale à l'intérieur du bâtiment s'appelle "acquérir le moniteur". L'occupation de la pièce est appelée "possession du moniteur", et le départ du moniteur est appelé "acquisition du moniteur". quitter la pièce est appelé "libérer le moniteur". Quitter l'ensemble du bâtiment s'appelle s'appelle "sortir du moniteur".
En plus d'être associé à un bit de données, un moniteur est associé à l'un ou l'autre des éléments suivants est associé à un ou plusieurs bits de code qui, dans ce livre, seront appelées régions de moniteur.
Comme nous l'avons déjà mentionné, le langage fournit deux éléments intégrés d'identifier les régions de contrôle dans vos programmes : les instructions synchronisées et les méthodes synchronisées. méthodes synchronisées. Ces deux mécanismes, qui mettent en œuvre l'aspe mutuelle de la synchronisation, sont pris en charge par la machine virtuelle Java de la machine virtuelle Java.
Verrouiller
Pour mettre en œuvre l'exclu associe un verrou (parfois appelé mutex) à chaque moniteur objet et à chaque classe. Un verrou est comme un privilège qu'un seul thread peut "posséder" à un moment donné.
Un même thread est autorisé à verrouiller plusieurs fois le même objet. Pour chaque objet, la machine virtuelle Java tient un compte du nombre d'objets verrouillés. de fois où l'objet a été verrouillé. Un objet non verrouillé a un compte de zéro. Lorsqu'un thread acquiert le verrou pour la première fois, le compte est à nouveau incrémenté à un. de nouveau incrémenté à un. Chaque fois que le thread acquiert un verrou sur le même objet, le compte est à nouveau incrémenté à un. même objet, le compte est à nouveau incrémenté.
1 votes
+1 @ulmangt pour avoir été le seul à répondre à votre question : Nous les appelons "moniteurs" parce que c'est ainsi que Hoare les appelait en 1974.