반응형
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을 의미합니다.
반응형
'SW > C++' 카테고리의 다른 글
C++ : STL 알고리즘 : 종류, 예제, copy() 사용 방법 (0) | 2020.03.31 |
---|---|
C++ : condition_variable::wait() : 사용법, 주의사항, 예제, 활용 방법 (0) | 2020.03.30 |
C++ : std::scoped_lock : 예제, 사용법, 활용법, 실수 방지 방법 (0) | 2020.03.21 |
C++ : mutex (뮤텍스) : 예제, 사용법, 활용 방법 (0) | 2020.03.20 |
C++ : 쓰레드 : sleep_for(), yield() : 개념, 예제, 사용 방법 (0) | 2020.03.19 |