2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

lock_guard

작성: sangseek | 게시 날짜: 2025/02/02 | 조회수: 49
[ 편집불가 ]
`lock_guard`는 C++에서 동기화를 간편하게 처리하기 위해 제공되는 RAII(리소스 획득은 초기화) 스타일의 클래스입니다. 주로 스레드 안전성을 보장하기 위해 뮤텍스(mutex)를 자동으로 잠그고 해제하는 데 사용됩니다. `lock_guard`는 생성될 때 지정된 뮤텍스를 잠그고, `lock_guard` 객체가 스코프를 벗어날 때 자동으로 뮤텍스를 해제합니다. 이 방식은 명시적으로 잠금과 해제를 관리할 필요가 없기 때문에 코드가 더 간결해지고, 예외가 발생하더라도 잠금이 해제되는 것을 보장해 줍니다. `lock_guard`는 비복사 가능(non-copyable)이며, 복사 생성자와 복사 대입 연산자가 삭제되어 있어, 같은 `lock_guard` 인스턴스를 두 개 이상의 객체에서 사용할 수 없습니다. 이를 통해 동시성 오류를 예방할 수 있습니다. 사용 예시는 다음과 같습니다: ```cpp include std::mutex mtx; void safeFunction() { std::lock_guard lock(mtx); // mtx를 잠금 // 스레드 안전한 코드 작성 } // 스코프가 끝나면 자동으로 mtx가 해제됨 ``` 이처럼 `lock_guard`는 멀티스레드 환경에서 리소스를 안전하게 관리하는 데 유용한 도구입니다.
내용이 부정하다면 싫어요를 누르세요.