QReadLocker Class
QReadLockerクラスは、読み取りアクセスのための読み書きロックのロックと解除を簡素化する便利なクラスです。詳細...
ヘッダー | #include <QReadLocker> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承メンバを含む全メンバのリスト
- QReadLockerはスレッドクラスに属しています。
注意:このクラスの関数はすべてスレッド・セーフです。
パブリック関数
QReadLocker(QReadWriteLock *lock) | |
~QReadLocker() | |
QReadWriteLock * | readWriteLock() const |
void | relock() |
void | unlock() |
詳細説明
QReadLocker (およびQWriteLocker) の目的は、QReadWriteLock のロックとアンロックを簡素化することです。ステートメントや例外処理コードでのロックとアンロックはエラーが発生しやすく、デバッグが困難です。QReadLockerをこのような状況で使用することで、ロックの状態が常に明確に定義されるようになります。
以下は、QReadLockerを使用して、読み取りと書き込みのロックをロックし、ロックを解除する例です:
QReadWriteLock lock; QByteArray readData() { QReadLocker locker(&lock); ... return data; }
これは以下のコードと同等です:
QReadWriteLock lock; QByteArray readData() { lock.lockForRead(); ... lock.unlock(); return data; }
QMutexLocker ドキュメントでは、ロッカー・オブジェクトの使用によってプログラミングが大幅に簡素化される例を示しています。
QWriteLocker およびQReadWriteLockも参照して ください。
メンバ関数のドキュメント
QReadLocker::QReadLocker(QReadWriteLock *lock)
QReadLocker を構築し、lock を読み込み用にロックします。ロックはQReadLockerが破棄されると解除されます。lock
がゼロの場合、QReadLocker は何もしません。
QReadWriteLock::lockForRead()も参照してください 。
[noexcept]
QReadLocker::~QReadLocker()
QReadLocker を破棄し、コンストラクタに渡されたロックのロックを解除します。
QReadWriteLock::unlock()も参照 。
QReadWriteLock *QReadLocker::readWriteLock() const
コンストラクタに渡された読み書きロックへのポインタを返します。
void QReadLocker::relock()
ロックされていない錠を再ロックする。
unlock()も参照 。
void QReadLocker::unlock()
このロッカーに関連するロックを解除する。
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.