CreateThread()를 사용할 때 두 스레드가 스레드 프로 시저로 "ThreadProc"라는 단일 함수를 사용할 수 있습니까?두 스레드가 동일한 스레드 프로 시저를 사용할 수 있습니까?
HANDLE thread1= CreateThread(NULL, //Choose default security
0, //Default stack size
(LPTHREAD_START_ROUTINE)&ThreadProc,
//Routine to execute. I want this routine to be different each time as I want each thread to perform a different functionality.
(LPVOID) &i, //Thread parameter
0, //Immediately run the thread
&dwThreadId //Thread Id
)
HANDLE thread2= CreateThread(NULL, //Choose default security
0, //Default stack size
(LPTHREAD_START_ROUTINE)&ThreadProc,
//Routine to execute. I want this routine to be different each time as I want each thread to perform a different functionality.
(LPVOID) &i, //Thread parameter
0, //Immediately run the thread
&dwThreadId //Thread Id
)
위의 코드는 동일한 기능을 가진 두 개의 스레드를 만듭니다 (두 스레드의 스레드 프로 시저가 같기 때문에). 올바르게 수행하고 있습니까?
두 스레드가 동일한 스레드 프로 시저를 사용하고 있으므로 동기화 문제가 발생할 수 있습니다.
도와주세요. 나는 정말로 혼란스럽고 인터넷을 통해 아무것도 찾을 수 없었다.
여기에서 시작하십시오 : http://en.wikipedia.org/wiki/Thread_(computing) –
두 번째 스레드 ID가 첫 번째 스레드 ID를 덮어 씁니다. 쓰레드 ID를 신경 쓰지 않는다면, 그냥'NULL'을 전달하십시오. 만약 당신이 신경 쓰면'dwThreadId1'과'dwThreadId2' (또는 배열)를 사용하십시오. – MSalters
+1, 고맙습니다. – Ayse