스레드 생성


#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;

}

'c/c++' 카테고리의 다른 글

스레드 생성  (0) 2013.04.05
정규식 표현  (0) 2013.03.27
MMF(Memory Mapping File) & Shared Memory  (0) 2013.03.26
JSON 사용하기  (0) 2013.03.13
ip/ mac 주소 얻기  (0) 2013.02.25