[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++의 뮤텍스와 관련된 자료를 참고할 수 있습니다.