[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()
함수를 호출하여 공유 자원에 대한 안전한 접근을 보장합니다. 이를 통해 두 스레드가 동시에 공유 데이터에 접근하는 것을 막을 수 있습니다.
참고 자료
뮤텍스를 사용하면 다중 스레드 환경에서 안전하게 데이터를 공유할 수 있으며, 이를 통해 프로그램의 안정성을 높일 수 있습니다.