QReadLocker Class
Die Klasse „QReadLocker“ ist eine Hilfsklasse, die das Sperren und Entsperren von Lese-Schreib-Sperren für den Lesezugriff vereinfacht. Mehr...
| Header: | #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 dieser Klasse sind threadsicher.
Öffentliche Funktionen
| QReadLocker(QReadWriteLock *lock) | |
| ~QReadLocker() | |
| QReadWriteLock * | readWriteLock() const |
| void | relock() |
| void | unlock() |
Ausführliche Beschreibung
Der Zweck von QReadLocker (und QWriteLocker) besteht darin, das Sperren und Entsperren von ` QReadWriteLock ` zu vereinfachen. Das Sperren und Entsperren von Anweisungen oder in Code zur Ausnahmebehandlung ist fehleranfällig und schwer zu debuggen. QReadLocker kann in solchen Situationen verwendet werden, um sicherzustellen, dass der Status der Sperre stets eindeutig definiert ist.
Hier ist ein Beispiel, das QReadLocker zum Sperren und Entsperren einer Lese-Schreib-Sperre für den Lesezugriff verwendet:
QReadWriteLock lock;
QByteArray readData()
{
QReadLocker locker(&lock);
//...
return data;
}Dies entspricht dem folgenden Code:
QReadWriteLock lock;
QByteArray readData()
{
lock.lockForRead();
//...
lock.unlock();
return data;
}Die Dokumentation zu „ QMutexLocker “ enthält Beispiele, in denen die Verwendung eines Locker-Objekts die Programmierung erheblich vereinfacht.
Siehe auch QWriteLocker und QReadWriteLock.
Dokumentation zu Member-Funktionen
QReadLocker::QReadLocker(QReadWriteLock *lock)
Erstellt einen QReadLocker und sperrt lock für das Lesen. Die Sperre wird aufgehoben, wenn der QReadLocker zerstört wird. Ist lock gleich Null, führt der QReadLocker keine Aktion aus.
Siehe auch QReadWriteLock::lockForRead().
[noexcept] QReadLocker::~QReadLocker()
Löscht die „ QReadLocker “ und entsperrt das Schloss, das an den Konstruktor übergeben wurde.
Siehe auch QReadWriteLock::unlock().
QReadWriteLock *QReadLocker::readWriteLock() const
Gibt einen Zeiger auf die Lese-/Schreibsperre zurück, die an den Konstruktor übergeben wurde.
void QReadLocker::relock()
Verriegelt ein entriegeltes Schloss erneut.
Siehe auch „ unlock“ ().
void QReadLocker::unlock()
Entriegelt das zu diesem Schließfach gehörende Schloss.
Siehe auch 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.