QWriteLocker Class
QWriteLocker 클래스는 쓰기 액세스를 위한 읽기-쓰기 잠금의 잠금 및 잠금 해제를 간소화해 주는 편의 클래스입니다. 더 보기...
| 헤더: | #include <QWriteLocker> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- QWriteLocker는 스레딩 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 스레드 안전합니다.
공개 함수
| QWriteLocker(QReadWriteLock *lock) | |
| ~QWriteLocker() | |
| QReadWriteLock * | readWriteLock() const |
| void | relock() |
| void | unlock() |
상세 설명
QWriteLocker(및 QReadLocker)의 목적은 QReadWriteLock 의 잠금 및 잠금 해제를 단순화하는 것입니다. 문장이나 예외 처리 코드에서 잠금 및 잠금 해제를 수행하는 것은 오류가 발생하기 쉽고 디버깅하기 어렵습니다. QWriteLocker를 이러한 상황에서 사용하면 잠금 상태가 항상 명확하게 정의되도록 할 수 있습니다.
다음은 QWriteLocker를 사용하여 쓰기 작업을 위해 읽기-쓰기 잠금을 걸고 해제하는 예제입니다:
QReadWriteLock lock;
void writeData(const QByteArray &data)
{
QWriteLocker locker(&lock);
//...
}이는 다음 코드와 동일합니다:
QReadWriteLock lock;
void writeData(const QByteArray &data)
{
lock.lockForWrite();
//...
lock.unlock();
}QMutexLocker 문서에는 로커 객체를 사용하여 프로그래밍을 크게 단순화한 예제가 나와 있습니다.
QReadLocker 및 QReadWriteLock도 참조하십시오 .
멤버 함수 문서
QWriteLocker::QWriteLocker(QReadWriteLock *lock)
QWriteLocker 객체를 생성하고 ` lock `을 쓰기 전용으로 잠급니다. 이 잠금은 QWriteLocker가 소멸될 때 해제됩니다. ` lock `이 0인 경우, QWriteLocker는 아무 작업도 수행하지 않습니다.
QReadWriteLock::lockForWrite()도 참조하십시오 .
[noexcept] QWriteLocker::~QWriteLocker()
QWriteLocker 를 파기하고, 생성자에 전달된 잠금을 해제합니다.
QReadWriteLock::unlock()도 참조하십시오 .
QReadWriteLock *QWriteLocker::readWriteLock() const
생성자에 전달된 읽기-쓰기 잠금에 대한 포인터를 반환합니다.
void QWriteLocker::relock()
잠금 해제된 자물쇠를 다시 잠급니다.
unlock()도 참조하십시오 .
void QWriteLocker::unlock()
이 사물함에 연결된 자물쇠를 엽니다.
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.