-
[c++11] std::mutex프로그래밍/c++ 2014. 4. 27. 13:14반응형
쓰레드(thread)를 사용하다보면 하나의 자원에 동시에 접근하는 경우가 있는데,
이를 방지하기 위해 사용하는 표준 라이브러리에서 제공하는 객체(C++11)
헤더
<mutex>
선언
std::mutex mutex;
lock()
뮤텍스를 소유를 시도함. 뮤텍스를 소유할 때까지 쓰레드는 대기.
unlock()
뮤텍스의 소유권을 놓음. 쓰레드 소유를 대기한(lock을 호출한) 쓰레드가 있다면 소유권은 다른 쓰레드에게 넘어간다.
try_lock()
bool을 반환.
기존의 lock은 소유권을 받을 때까지 대기에 들어갔다면, 이 함수는 호출 되는 순간 소유권을 얻어내지 못하면 false를 반환.
공유된 자원이 다른 쓰레드에서 사용중이라면(try_lock 반환값이 false라면), 다른 작업을 하는 식으로 사용이 가능.
++
윈도우 운영체제 환경에서 std::mutex는 내부적으로 Critical Section을 사용
반응형'프로그래밍 > c++' 카테고리의 다른 글
[C++]std::addressof의 존재 이유 (2) 2014.06.29 알아볼 c++11 문법 (0) 2014.05.16 C++11: decltype (0) 2014.05.16 구글 C++ 스타일 가이드 - 이름 짓기 (0) 2014.05.02 C++ 구조체 멤버를 숨기는 기법 Pimpl (0) 2013.03.28