[c++] 뮤텍스를 사용한 시간 지연 기능 구현

뮤텍스를 사용하여 C++ 프로그램에서 시간 지연 기능을 구현하는 방법을 알아보겠습니다.

뮤텍스란?

뮤텍스(mutex)는 다중 스레드 환경에서 공유 자원에 대한 접근을 조절하기 위한 동기화 기법 중 하나입니다. 뮤텍스를 사용하면 한 스레드가 공유 자원에 접근하는 동안 다른 스레드가 접근하지 못하도록 제어할 수 있습니다.

시간 지연 기능 구현

아래는 뮤텍스를 사용하여 시간 지연 기능을 구현하는 간단한 예제 코드입니다.

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

std::mutex delayMutex;

void delayFunction(int delayTime) {
    delayMutex.lock(); // 뮤텍스 락
    std::this_thread::sleep_for(std::chrono::milliseconds(delayTime));
    delayMutex.unlock(); // 뮤텍스 언락
}

int main() {
    std::thread t1(delayFunction, 1000);
    std::thread t2(delayFunction, 3000);

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

    return 0;
}

이 예제 코드에서는 delayFunction 함수 내에서 delayMutex를 사용하여 시간 지연을 구현하고 있습니다.

결론

뮤텍스를 사용하여 C++ 프로그램에서 다중 스레드 간의 시간 지연을 구현할 수 있습니다. 뮤텍스를 활용하여 스레드 간의 자원 접근을 조절하고 동기화하는 방법에 대해 더 알아보면 유용할 것입니다.

더 많은 정보를 원하시면 cppreference.com에서 C++의 뮤텍스와 관련된 자료를 참고할 수 있습니다.