QReadLocker Class

Die Klasse QReadLocker ist eine Komfortklasse, die das Sperren und Entsperren von Schreib-Lese-Sperren für den Lesezugriff vereinfacht. Mehr...

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

Hinweis: Alle Funktionen in dieser Klasse sind thread-sicher.

Öffentliche Funktionen

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

Detaillierte Beschreibung

Der Zweck von QReadLocker (und QWriteLocker) ist es, das Sperren und Entsperren von QReadWriteLock zu vereinfachen. Das Sperren und Entsperren von Anweisungen oder Code zur Ausnahmebehandlung ist fehleranfällig und schwer zu debuggen. QReadLocker kann in solchen Situationen verwendet werden, um sicherzustellen, dass der Zustand der Sperre immer wohldefiniert ist.

Hier ist ein Beispiel, das QReadLocker zum Sperren und Entsperren einer Lese-Schreib-Sperre verwendet:

QReadWriteLock lock;

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

Es ist äquivalent zu folgendem Code:

QReadWriteLock lock;

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

Die Dokumentation QMutexLocker zeigt Beispiele, bei denen die Verwendung eines Locker-Objekts die Programmierung erheblich vereinfacht.

Siehe auch QWriteLocker und QReadWriteLock.

Dokumentation der Mitgliedsfunktionen

QReadLocker::QReadLocker(QReadWriteLock *lock)

Konstruiert einen QReadLocker und sperrt lock zum Lesen. Die Sperre wird aufgehoben, wenn der QReadLocker zerstört wird. Wenn lock Null ist, tut QReadLocker nichts.

Siehe auch QReadWriteLock::lockForRead().

[noexcept] QReadLocker::~QReadLocker()

Zerstört die QReadLocker und hebt die Sperre auf, die an den Konstruktor übergeben wurde.

Siehe auch QReadWriteLock::unlock().

QReadWriteLock *QReadLocker::readWriteLock() const

Gibt einen Zeiger auf die Lese- und Schreibsperre zurück, die an den Konstruktor übergeben wurde.

void QReadLocker::relock()

Verriegelt ein entriegeltes Schloss wieder.

Siehe auch unlock().

void QReadLocker::unlock()

Entriegelt das mit diesem Schließfach verbundene Schloss.

Siehe auch QReadWriteLock::unlock().

© 2025 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.