[c++] 뮤텍스 (Mutex)란 무엇인가?

예를 들어, 멀티스레드 환경에서 동시에 파일에 쓰기 작업을 수행하려면 각 스레드가 파일에 접근하는 순서를 제어해야 합니다. 이때 뮤텍스를 사용하여 각 스레드가 파일을 접근할 때마다 상호배제를 적용할 수 있습니다.

아래는 C++에서의 뮤텍스 사용 예시입니다.

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

std::mutex mtx;

void printMessage(int id, const std::string& message) {
    mtx.lock();
    std::cout << "Thread " << id << ": " << message << std::endl;
    mtx.unlock();
}

int main() {
    std::thread t1(printMessage, 1, "Hello");
    std::thread t2(printMessage, 2, "World");

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

    return 0;
}

위 코드에서 std::mutex를 사용하여 printMessage 함수의 실행을 상호배제하고 있습니다.

자세한 내용은 다음 참고 자료를 참조할 수 있습니다.