Sur cette page

QWriteLocker Class

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

En-tête : #include <QWriteLocker>
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

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

Description détaillée

QWriteLocker (et QReadLocker) 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. QWriteLocker peut être utilisé dans de telles situations pour garantir que l'état du verrou est toujours bien défini.

Voici un exemple utilisant QWriteLocker pour verrouiller et déverrouiller un verrou en lecture-écriture en vue d'une écriture :

QReadWriteLock lock;

void writeData(const QByteArray &data)
{
    QWriteLocker locker(&lock);
    //...
}

Cela équivaut au code suivant :

QReadWriteLock lock;

void writeData(const QByteArray &data)
{
    lock.lockForWrite();
    //...
    lock.unlock();
}

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

Voir également QReadLocker et QReadWriteLock.

Documentation sur les fonctions membres

QWriteLocker::QWriteLocker(QReadWriteLock *lock)

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

Voir aussi QReadWriteLock::lockForWrite().

[noexcept] QWriteLocker::~QWriteLocker()

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

Voir aussi QReadWriteLock::unlock().

QReadWriteLock *QWriteLocker::readWriteLock() const

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

void QWriteLocker::relock()

Verrouille à nouveau une serrure déverrouillée.

Voir aussi unlock().

void QWriteLocker::unlock()

Déverrouille le verrou 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.