[c++] 뮤텍스를 사용한 데이터 동기화 방법

뮤텍스 선언 및 초기화

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

std::mutex mtx;
int sharedData = 0;

void updateData() {
    mtx.lock();
    // 공유 데이터 업데이트 로직
    sharedData++;
    mtx.unlock();
}

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

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

    std::cout << "Shared data: " << sharedData << std::endl;
    return 0;
}

위 예제에서는 <mutex> 헤더를 사용하여 뮤텍스를 선언하고 초기화한 후, lock()unlock() 메소드를 사용하여 공유 데이터에 대한 접근을 보호합니다. 그러면 sharedData 변수가 안전하게 업데이트됩니다.

참고 자료