[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
변수가 안전하게 업데이트됩니다.
참고 자료
- C++ Reference: std::mutex
- GeeksforGeeks: Multithreading in C++