En esta página

QReadLocker Class

La clase QReadLocker es una clase de conveniencia que simplifica el bloqueo y desbloqueo de bloqueos de lectura-escritura para el acceso de lectura. Más...

Cabecera: #include <QReadLocker>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Nota: Todas las funciones de esta clase son thread-safe.

Funciones Públicas

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

Descripción Detallada

El propósito de QReadLocker (y QWriteLocker) es simplificar el bloqueo y desbloqueo de QReadWriteLock. Bloquear y desbloquear sentencias o en código de manejo de excepciones es propenso a errores y difícil de depurar. QReadLocker puede usarse en tales situaciones para asegurar que el estado del bloqueo está siempre bien definido.

He aquí un ejemplo que utiliza QReadLocker para bloquear y desbloquear un bloqueo de lectura-escritura para lectura:

QReadWriteLock lock;

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

Es equivalente al siguiente código:

QReadWriteLock lock;

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

La documentación de QMutexLocker muestra ejemplos en los que el uso de un objeto locker simplifica enormemente la programación.

Véase también QWriteLocker y QReadWriteLock.

Documentación de funciones miembro

QReadLocker::QReadLocker(QReadWriteLock *lock)

Construye un QReadLocker y bloquea lock para su lectura. El bloqueo se desbloqueará cuando se destruya el QReadLocker. Si lock es cero, QReadLocker no hace nada.

Vea tambien QReadWriteLock::lockForRead().

[noexcept] QReadLocker::~QReadLocker()

Destruye QReadLocker y desbloquea el candado que se pasó al constructor.

Véase también QReadWriteLock::unlock().

QReadWriteLock *QReadLocker::readWriteLock() const

Devuelve un puntero al bloqueo de lectura-escritura que se pasó al constructor.

void QReadLocker::relock()

Vuelve a bloquear una cerradura desbloqueada.

Véase también unlock().

void QReadLocker::unlock()

Desbloquea la cerradura asociada a esta taquilla.

Véase también 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.