스레드에서 lock_guard 사용하는 다음과 같은 제어 흐름이 : 네 do
부품이 모두 다른 일을 실행하는 방법방법이 조건
mutex.lock()
if (condition) {
// do synced things
mutex.unlock();
// do parallel things
} else {
// do other synced things
mutex.unlock();
// do other parallel things
}
참고.
대신 std::lock_guard
을 사용하여 잠금 및 잠금 해제를위한 직접 호출을 바꿉니 까? 두 경우에 병렬 물건이 글로벌 상태를 지키고 뮤텍스를 해제 한 후 수행하기 때문에
뮤텍스 잠금의 범위에 있어야합니까? – NathanOliver
@ NathanOliver 예, 액세스 할 때 잠 가야합니다. –
개인적으로'unique_lock'을 사용하고 수동으로 뮤텍스를 잠금 해제합니다. 잠금 해제 프로세스에 대한 RAII와 제어 권한을 얻게됩니다. – KABoissonneault