본문 바로가기

mutex

[C++11] std::mutex를 통한 thread 동기화 2015/06/28 - [Programming/C++11&14] - [C++11] thread 지원 - future를 통한 return값 획득 (2)이미 대부분의 OS는 동기화를 위한 다양한 장치가 마련되어 있습니다.thread가 C++11에서 직접 지원하면서 동기화를 위한 std::mutex가 추가되었습니다.헤더는 이며 사용 방법은 다음과 같습니다. #include #include #include std::mutex mtx; void ThreadFunc(int nID, int& nVal) { for (int i = 0 ; i < 5 ; ++i) { mtx.lock(); std::cout 더보기
다중 실행 방지 코드(CreateMutex) 프로그램을 보면 하나의 프로세스(실행되어진 프로그램)만 허용하는 경우가 있습니다.보통 게임에서 물가 안정 등의 이유로 다중 실행 방지를 많이 사용합니다.그래서 그걸 깨는 멀티로더들도 암암리에 제작이 됩니다.다중 실행을 방지하는 코드는 뮤텍스라는 걸 사용합니다.물론 뮤텍스가 아닌 다른 커널 오브젝트를 사용해도 가능합니다.뮤텍스는 커널 오브젝트기 때문에 모든 프로세스를 통틀어서 하나만 존재합니다.이 뮤텍스가 중복되는 지 확인(이미 존재하는가 확인)하면 되는것이죠.이 뮤텍스를 이용한 방법을 알아보도록 하겠습니다. #include #include HANDLE hMutex = nullptr; int main() { hMutex = ::CreateMutex(nullptr, TRUE, _T("Unique_Name_o.. 더보기