Verrouillage du moniteur

Monitor Lock (Monitor Lock) est un mécanisme de synchronisation et de contrôle d'exclusion mutuelle en Java, également appelé verrouillage interne ou moniteur. Chaque objet a un verrou de moniteur correspondant en Java.

Lorsqu'il rencontre synchronizedun bloc de code ou une méthode, il acquiert le verrou de moniteur de l'objet synchronisé. Un seul thread peut détenir un verrou de moniteur sur un objet à la fois. Les autres threads essayant d'acquérir le même verrou seront bloqués jusqu'à ce que le verrou soit libéré.

synchronizedUn verrou de moniteur garantit qu'un seul thread peut exécuter le bloc de code ou la méthode associée au verrou . Il fournit une exclusion mutuelle, qui empêche plusieurs threads d'accéder aux ressources partagées en même temps, ce qui peut entraîner une corruption ou une incohérence des données.

Voici un exemple pour illustrer l'utilisation des verrous de moniteur :

public class MyClass {
    private int count = 0;
    
    public synchronized void increment() {
        // 同步方法
        // 同一时间只有一个线程可以执行这个方法
        count++;
    }
}

Dans le code ci-dessus, les méthodes synchronizedsont décorées avec des mots-clés increment. Le verrou de moniteur associé à cette méthode consiste à garantir qu'un seul thread peut manipuler des variables thislors de l'exécution de la méthode et à maintenir la cohérence des ressources partagées.incrementcount

Il convient de noter que le verrou du moniteur est réentrant, c'est-à-dire que le même thread peut acquérir le même verrou plusieurs fois sans blocage. Un verrou réentrant permet à un thread d'entrer dans un bloc de code ou une méthode synchronisée autant de fois qu'il détient déjà le verrou.

En bref, le verrouillage du moniteur est le concept de base de la synchronisation des threads en Java, qui fournit un contrôle de la synchronisation et de l'exclusion mutuelle. Il garantit qu'un seul thread peut exécuter le code de synchronisation associé à un objet de verrouillage particulier, empêchant l'accès simultané aux ressources partagées et garantissant des opérations thread-safe.

Je suppose que tu aimes

Origine blog.csdn.net/qq_39208536/article/details/131473677
conseillé
Classement