이벤트 PULS 뮤텍스? -----------------------------------------------------------------------------------------
동기화 방법이 여러가지 있는 관계로 당연히 혼용하여 쓸수 있게 된다.
이벤트 오브젝트를 통하면 작업과정은 동일하게 할수 있어도 소비자가 2명이라면 그 2명의 소비자가 동시에 가게에 들어오는 경우가 생길 수가 있다. 그런 과정 자체가 혹은 소비자가 3명일 수도 혹은 4명일수도 있는 것이다.
즉 그 2명의 소비자의 동기화를 위해서 뮤텍스를 사용하는 방식을 보여준다.
unsingned int WINAPI OutPutTAhreadFunction1(LPVOID lpParam) -> 첫번째 쓰레드 함수
unsingned int WINAPI OutPutTAhreadFunction2(LPVOID lpParam) -> 두번째 쓰레드 함수
unsingned int WINAPI OutPutTAhreadFunction1(LPVOID lpParam)
{
WaitForSingleObject(hEvent, INFINITE); -> 메인쓰레드에서 작업하는 내용을 작업해주고 이벤트 동기화를 먼저 해준다음
WaitForSingleObject(hMutex, INFINITE); -> 뮤텍스를 통해서 작업결과물에 2개의 쓰레드가 동시에 접근하는 것을 동기화 시킨다.
코드 내용 전역변수 사용
ReleaseMutex(hMutex)
}
unsingned int WINAPI OutPutTAhreadFunction2(LPVOID lpParam)
{
WaitForSingleObject(hEvent, INFINITE); -> 메인쓰레드에서 작업하는 내용을 작업해주고 이벤트 동기화를 먼저 해준다음
WaitForSingleObject(hMutex, INFINITE); -> 뮤텍스를 통해서 작업결과물에 2개의 쓰레드가 동시에 접근하는 것을 동기화 시킨다.
코드 내용
ReleaseMutex(hMutex)
}
'게임개발공부 > 서적공부' 카테고리의 다른 글
윈도우 시스템 프로그래밍 <쓰레드 풀> (0) | 2013.11.23 |
---|---|
윈도우 시스템 프로그래밍 <커널모드 동기화> 타이머기반 동기화 (0) | 2013.11.23 |
윈도우 시스템 프로그래밍 <커널모드 동기화> #실행순서 동기화 (0) | 2013.11.21 |
윈도우 시스템 프로그래밍 <커널모드 동기화 방식 1> (0) | 2013.11.17 |
윈도우 프로그래밍 <쓰레드 동기화 유저모드> (0) | 2013.11.17 |