SW/C++

C++ : condition_variable, unique_lock : 개념, 정의, 활용 방법

얇은생각 2020. 3. 29. 07:30
반응형

c++

 

std::condition_variable

이벤트 개체라고 합니다.

신호를 받을 떄까지 현재 쓰레드의 실행을 멈춥니다.

notify_one(), notify_all() 를 사용해 멈춰 놓은 쓰레드 또는 전부를 다시 실행시킵니다.

wait(), wait_for(), wait_until() 를 사용해 조건 변수의 조건을 충족시킬 때까지 또는 일정 시간 동안 현재 쓰레드의 실행을 멈춥니다.

이 떄 std::unique_lock을 사용해야 합니다.

 

 

 

std::unique_lock

기본적으로 scoped_lock과 유사합니다.

생성시에 lock을 잠그지 않을 수도 있습니다. 두번째 매개변수로 std::defer_lock을 전달해야 합니다.

std::recursive_mutex와 함께 써서 재귀적으로 잠글 수 있습니다. 조건 변수에 쓸 수 있는 유일한 lock을 의미합니다.

반응형