Sur cette page

QReadLocker Class

La classe QReadLocker est une classe de commodité qui simplifie le verrouillage et le déverrouillage des verrous lecture-écriture pour l'accès en lecture. Plus d'informations...

En-tête : #include <QReadLocker>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont sûres pour les threads.

Fonctions publiques

QReadLocker(QReadWriteLock *lock)
~QReadLocker()
QReadWriteLock *readWriteLock() const
void relock()
void unlock()

Description détaillée

L'objectif de QReadLocker (et de QWriteLocker) est de simplifier le verrouillage et le déverrouillage de QReadWriteLock. Le verrouillage et le déverrouillage des instructions ou du code de gestion des exceptions sont sources d'erreurs et difficiles à déboguer. QReadLocker peut être utilisé dans de telles situations pour garantir que l'état du verrou est toujours bien défini.

Voici un exemple qui utilise QReadLocker pour verrouiller et déverrouiller un verrou de lecture-écriture pour la lecture :

QReadWriteLock lock;

QByteArray readData()
{
    QReadLocker locker(&lock);
    //...
    return data;
}

Il est équivalent au code suivant :

QReadWriteLock lock;

QByteArray readData()
{
    lock.lockForRead();
    //...
    lock.unlock();
    return data;
}

La documentation de QMutexLocker montre des exemples où l'utilisation d'un objet locker simplifie grandement la programmation.

Voir également QWriteLocker et QReadWriteLock.

Documentation sur les fonctions membres

QReadLocker::QReadLocker(QReadWriteLock *lock)

Construit un QReadLocker et verrouille lock pour la lecture. Le verrou sera déverrouillé lorsque le QReadLocker sera détruit. Si lock est égal à zéro, QReadLocker ne fait rien.

Voir aussi QReadWriteLock::lockForRead().

[noexcept] QReadLocker::~QReadLocker()

Détruit le site QReadLocker et déverrouille le verrou transmis au constructeur.

Voir également QReadWriteLock::unlock().

QReadWriteLock *QReadLocker::readWriteLock() const

Renvoie un pointeur sur le verrou en lecture-écriture qui a été transmis au constructeur.

void QReadLocker::relock()

Permet de reverrouiller une serrure déverrouillée.

Voir également unlock().

void QReadLocker::unlock()

Déverrouille le cadenas associé à ce casier.

Voir aussi QReadWriteLock::unlock().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.