[c++] C++에서 뮤텍스 사용하기

뮤텍스(mutex)는 여러 스레드가 동시에 공유하는 데이터에 접근할 때 발생할 수 있는 문제를 방지하기 위한 동기화 기법 중 하나입니다. C++에서는 std::mutex 클래스를 사용하여 뮤텍스를 구현할 수 있습니다.

뮤텍스 선언하기

다음은 std::mutex를 사용하여 간단한 뮤텍스를 선언하는 예제입니다.

#include <iostream>
#include <thread>
#include <mutex>

std::mutex myMutex;

void sharedResourceAccess() {
    myMutex.lock();
    // 공유 데이터에 대한 접근 및 수정
    myMutex.unlock();
}

int main() {
    std::thread t1(sharedResourceAccess);
    std::thread t2(sharedResourceAccess);
    t1.join();
    t2.join();

    return 0;
}

뮤텍스를 사용한 스레드 동기화

위 예제에서 std::mutex를 사용하여 myMutex 뮤텍스를 생성하고, lock()unlock() 함수를 호출하여 공유 자원에 대한 안전한 접근을 보장합니다. 이를 통해 두 스레드가 동시에 공유 데이터에 접근하는 것을 막을 수 있습니다.

참고 자료

뮤텍스를 사용하면 다중 스레드 환경에서 안전하게 데이터를 공유할 수 있으며, 이를 통해 프로그램의 안정성을 높일 수 있습니다.