Maison > Java > javaDidacticiel > Exemple de test Java pour analyser les caractéristiques réentrantes de ReentrantLock

Exemple de test Java pour analyser les caractéristiques réentrantes de ReentrantLock

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-05-09 18:07:08
avant
863 Les gens l'ont consulté

1. Concept

Verrou de lecture-écriture réentrant. Le verrou de lecture-écriture maintient un ReadLock et un WriteLock en interne. La couche inférieure est toujours AQS, mais AQS n'a qu'une seule quantité d'état. écrire en même temps ? , Les 16 bits de poids fort de l'état (int) sont utilisés ici pour représenter l'état de lecture, les 16 bits de poids faible représentent l'écriture, les 16 bits de poids fort représentent le nombre de threads qui acquièrent le verrou de lecture et le poids faible 16 bits représentent le numéro réentrant du verrou en écriture.

2. Le principe

est implémenté à l'aide de la file d'attente CAS+AQS. Il prend en charge les verrous équitables et injustes, et la mise en œuvre des deux est similaire

3, exemples

public class ReentrantDemo implements Runnable {
    Lock lock = new ReentrantLock();
    @Override
    public void run() {
        set();
    }
    public void set() {
        try {
            lock.lock();
            System.out.println("set 方法");
            get();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock();// 必须在finally中释放
        }
    }
 
    public void get() {
 
        try {
            lock.lock();
            System.out.println("get 方法");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock();
        }
    }
    public static void main(String[] args) {
        ReentrantDemo reentrantDemo = new ReentrantDemo();
        new Thread(reentrantDemo).start();
    }
}
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:
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
Derniers numéros
Impossible d'installer Java
Depuis 1970-01-01 08:00:00
0
0
0
Java peut-il être utilisé comme backend du Web ?
Depuis 1970-01-01 08:00:00
0
0
0
Installer JAVA
Depuis 1970-01-01 08:00:00
0
0
0
Aide : Données chiffrées JAVA Décryptage PHP
Depuis 1970-01-01 08:00:00
0
0
0
Est-ce en langage Java ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal