하나의 ThreadProc에 대해 CreateThread 함수를 여러 번 호출해서 여러개의 스레드를 만들 수 없을까요?
글쓴이: mydream / 작성시간: 수, 2016/06/01 - 6:48오후
CreateThread 함수의 원형은 다음과 같고
HANDLE WINAPI CreateThread(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
세 번째 인자가 스레드 프록을 인자로 받는다고 합니다. 그러면 이렇게 해서 두 번 스레드를 등록하면 스레드가 두 개 만들어지는건가요?
HANDLE hThread=NULL; for(int i=0;i<2;++i) { while( (hThread=CreateThread( , , threadfun, ,..))!=NULL) {} CloseHandle(hThread); }
그러면 threadfun 이라는 인스턴스가 두 개가 만들어지는 것인가요? 그런 의도로 저렇게 해봤습니다. 그런데 스레드 아이디를 확인해보니 두 스레드의 아이디가 같네요. CreateThread 함수의 마지막 인자의 값을 확인해봤더니 말입니다. 스레드 아이디가 같다면 두 개가 같은 인스턴스라는 말이 될텐데요. 두 개의 스레드를 만들려면 스레드 함수의 이름이 달라야만 하는 것인가요? 같은 함수로 독립적인 두 개의 스레드를 만들 수 없나요?
Forums:
while 문에서 ==NULL이어야 하는군요.
죄송합니다. ==NULL이여야 하느군요. 글 삭제하고 싶은데, 삭제 방법이 없네요.
댓글 달기