0
나는 4 개 스레드를 만들었습니다,하지만 난이 프로그램을 실행하고 때 출력으로이 무엇입니까 : 왜 그것이 내가 단지 4 스레드를 생성 한마지막으로 생성 된 스레드 만 실행하는 멀티 스레딩 프로그램?
- :
Thread #: 1 Thread #: 2 Thread #: 3 Thread #: 3 Thread #: 4 Thread #: 4 Thread #: 4 Thread #: 5 Thread #: 5 Thread #: 5 . . . Thread #: 5 Thread #: 5
나는이 개 질문이 스레드 표시 # : 5
- 생성 된 4 개의 스레드는 모두 순차적으로 실행되어야하지만 마지막으로 생성 된 스레드 만 실행하는 이유는 무엇입니까?
소스 코드 :
#include<windows.h>
HANDLE ThreadHandle[4];
DWORD dwThreadId[4];
DWORD WINAPI ThreadFunction(LPVOID param)
{
while (1)
{
printf("Thread #: %d\n", *((int*)param));
}
Sleep(10);
return 0;
}
int main()
{
static int i = 0;
for (i = 1; i <= 4; i++)
{
ThreadHandle[i] = CreateThread(NULL, 0, ThreadFunction, (LPVOID)&i, 0, &dwThreadId[i]);
Sleep(10);
}
while (1)
{
Sleep(100);
}
return 0;
}
배열은 C로 0 인덱스가 지정됩니다.'ThreadHandle [4]'에의 기입은 미정 도리의 동작입니다. – EOF
그리고 코드는 현재 {} 사용법으로 컴파일되지 않을 것입니다. 동시 콘솔 출력은 ... – deviantfan