ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.