[c++] 뮤텍스를 사용한 동기화 예제

뮤텍스는 여러 스레드가 공유 자원에 접근하는 것을 제어하기 위한 동기화 메커니즘입니다. 다음은 C++에서 뮤텍스를 사용하여 스레드 간에 안전하게 데이터를 공유하는 간단한 예제입니다.

뮤텍스 생성

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

std::mutex m; // 뮤텍스 객체 생성
int shared_data = 0;

void increment_shared_data() {
    m.lock(); // 뮤텍스 락
    shared_data++;
    m.unlock(); // 뮤텍스 언락
}

int main() {
    std::thread t1(increment_shared_data);
    std::thread t2(increment_shared_data);

    t1.join();
    t2.join();

    std::cout << "공유 데이터: " << shared_data << std::endl;

    return 0;
}

설명

뮤텍스를 사용하여 공유 자원에 안전하게 접근하여 스레드 간 동기화를 보장할 수 있습니다.

참고 자료