|
아래같이 CriticalSection 1개만 선언하고 각기 다른 처리를 할수있나요?
스레드를 꼭 써야 할 상황이거든요. (속도가 믾이 필요한 일입니다.)
가능하다면 아래처럼 사용시 데드락에 걸릴수 있나요?
아시는분 부탁드립니다.
CRITICAL_SECTION CriticalSection;
InitializeCriticalSection(&CriticalSection); // FormCreate 함수에서
// 1번째 스레드 처리
__fastcall TThread1::TThread1(int nNum)
: TThread(true)
{
FreeOnTerminate = true;
Resume();}
/---------------------------------------------------------------------------
void __fastcall TThread1::Execute()
{
while(!Terminated)
{
EnterCriticalSection(&CriticalSection);
Sleep(10);
처리1;
LeaveCriticalSection(&CriticalSection);
}
}
}
}
//---------------------------------------------------------------------------
// 2번째 스레드
__fastcall TThread2::TThread2(int nNum)
: TThread(true)
{
FreeOnTerminate = true;
Resume();}
//---------------------------------------------------------------------------
void __fastcall TThread2::Execute()
{
while(!Terminated)
{
EnterCriticalSection(&CriticalSection);
Sleep(10);
처리2;
LeaveCriticalSection(&CriticalSection);
}
}
}
}
//---------------------------------------------------------------------------
|