Sur cette page

QReadLocker Class

La classe QReadLocker est une classe utilitaire qui simplifie la mise en place et la levée des verrous en lecture-écriture pour l'accès en lecture. En savoir plus...

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 thread-safe.

Fonctions publiques

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

Description détaillée

QReadLocker (et QWriteLocker) a pour but de simplifier le verrouillage et le déverrouillage d'QReadWriteLock. Le verrouillage et le déverrouillage dans des instructions ou dans 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 soit toujours bien défini.

Voici un exemple utilisant QReadLocker pour verrouiller et déverrouiller un verrou en lecture-écriture à des fins de lecture :

QReadWriteLock lock;

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

Cela équivaut au code suivant :

QReadWriteLock lock;

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

La documentation d’ QMutexLocker présente des exemples où l’utilisation d’un objet « locker » simplifie considérablement la programmation.

Voir également QWriteLocker et QReadWriteLock.

Documentation sur les fonctions membres

QReadLocker::QReadLocker(QReadWriteLock *lock)

Crée un objet `QReadLocker` et verrouille ` lock ` en lecture. Le verrou sera déverrouillé lorsque l'objet `QReadLocker` sera détruit. Si ` lock ` est égal à zéro, `QReadLocker` ne fait rien.

Voir aussi QReadWriteLock::lockForRead().

[noexcept] QReadLocker::~QReadLocker()

Détruit l'QReadLocker et déverrouille le verrou qui a été transmis au constructeur.

Voir aussi QReadWriteLock::unlock().

QReadWriteLock *QReadLocker::readWriteLock() const

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

void QReadLocker::relock()

Verrouille à nouveau une serrure déverrouillée.

Voir aussi 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.