-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
std::lock_guard 에 대한 의문점들...? #4
Comments
저도 3장 앞부분은 제대로 다 읽어보지 않아서 확실하지 않지만 우선 std::unique_lock 이 존재함에도 ( lock_guard 와 같은 동작이 가능 함에도 ) std::lock_guard 는 unlock 가능하지만 아마도 java 에서 함수명에 synchronize 를 붙이는것 처럼 쓰기를 의도하고 만든게 아닌가 싶습니다. |
lock_guard의 동작: 사용처:
|
신뢰성 보장 이라면 중간에 lock_guard 로 보호하는 mutex 를 직접 unlock 을 수행해도 괜찮다는 의미로 받아 드려도 될까요? 제 생각에는 'lock_guard 를 사용 하였으면 그 scope 에서는 mutex 에 직접 접근은 하지 말자' 로 이해 할수도 있는것 같습니다. 뭐 어짜피 강제 되어 있는 사항들은 아니지만 어느 방법으로 사용하는게 좋을까나 하는 의문이어서... |
스택 오버 플로우에 unique_lock 과 lock_guard 에 대한 이야기 있어서 추가 합니다. |
아, 제가 말하는 신뢰성은 리소스 클린업 이슈입니다. 잠금을 해제하지 않고 루틴이 종료되는것은 피해야하니 그 부분에 대해 신뢰성이
|
네 신뢰성 부분은 저도 비슷 하게 이해 했습니다. 하나 궁금한것은 std::lock_guard 를 사용하였을때 mutex를 이용하여 unlock 을 쓸 필요가 있냐는것 입니다. |
reference 에 명시 되어 있네요.. http://en.cppreference.com/w/cpp/thread/mutex std::mutex 는 직접적으로 호출 하지 않는편이 좋겟네요.. |
NAVER - http://www.naver.com/thstkddn1@naver.com 님께 보내신 메일 <Re: [CppConcurrencyInAction] std::lock_guard 에 대한 의문점들...? (#4)> 이 다음과 같은 이유로 전송 실패했습니다. 받는 사람이 회원님의 메일을 수신차단 하였습니다. |
std::lock_guard 사용 이후 std::mutex unlock
std::lock_guard() 를 사용하였을때 아래와 같이 사용하는것이 올바른 코드 작성 법 일까요?
std::lock_guard() 를 사용한 이후에 std::mutex 를 unlock 이후 std::lock_guard 동작이 궁금해서 테스트 해 보았는데 이상없이 동작 하였습니다.
std::lock_guard 의 사용 이유? 사용처?
아래와 같은 이유 때문에 std::lock_guard 를 사용하는 걸까요?
그리고 std::lock_guard 와 std::unique_lock 이 있습니다.
std::lock_guard 는 멤버 함수가 없습니다. 그러면 std::lock_guard 는 선언 이후에 별다른 처리를 못하고 소멸자가 unlock 을 자동으로 해주는 기능만 있는거 같습니다.
그에 반해 std::unique_lock 은 멤버 함수가 존재 합니다. 여러 operation(lock, unlock) 을 수행 할수 있습니다.
그러면 std::lock _guard는 함수 단위로 lock 를 걸때 사용해야 할까요?
(java 에서 함수명에 synchronize 를 붙이는것 처럼)
참고 자료
http://en.cppreference.com/w/cpp/thread/lock_guard
http://en.cppreference.com/w/cpp/thread/unique_lock
The text was updated successfully, but these errors were encountered: