스레드 생성
#include <windows.h>
#include <process.h>
#include <iostream>
using namespace std;
#define MAX_THREAD 2
DWORD WINAPI ThFunc(LPVOID lpParam)
{
int n;
printf("[%d] address of 'n' is %p\n", _threadid, &n);
printf("[%d] exit\n", _threadid);
return 0;
}
int main(int argc, char **argv)
{
int i = 0, nData = 100;
DWORD dwThID[MAX_THREAD];
HANDLE hThreads[MAX_THREAD];
unsigned long ulStackSize = 0;
memset(dwThID, 0, sizeof(dwThID)/sizeof(dwThID[0]));
memset(hThreads, 0, sizeof(hThreads)/sizeof(hThreads[0]));
for ( i = 0; i < MAX_THREAD; i++ )
{
hThreads[i] = CreateThread(NULL, ulStackSize, ThFunc, &nData, CREATE_SUSPENDED, &dwThID[i]);
printf("[%d] start\n", (int)dwThID[i]);
SetThreadPriority(hThreads[i], THREAD_PRIORITY_HIGHEST);
printf("[%d] thread priority is %d\n", dwThID[i], GetThreadPriority(hThreads[i]));
ResumeThread(hThreads[i]);
}
WaitForMultipleObjects(MAX_THREAD, hThreads, TRUE, INFINITE);
printf("thread working is done.\n");
for ( i = 0; i < MAX_THREAD; i++ )
CloseHandle(hThreads[i]);
return 0;
}