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 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QReadLocker ist Teil der Threading-Klassen.
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.