#include <stdio.h>
#include <windows.h>
typedef void * HANDLE;
#define SEMAPHORE HANDLE
#define THREADHANDLE HANDLE
#define THREADPROCESS DWORD WINAPI
#define THREADRETURN 0
#define PTHREADPROCESS LPTHREAD_START_ROUTINE
#define NULLTHREAD NULL
int g_thread_end = 0;
THREADHANDLE os_creatthread(PTHREADPROCESS fun,void *para)
{
unsigned long id;
return CreateThread(NULL,0,fun,para,0,&id);
}
void waitforthread()
{
while (g_thread_end == 0)
{
NULL;
}
}
THREADPROCESS threadfun(PVOID arg)
{
int i;
for(i=0; i < 0xfffffff; i++)
{
NULL;
}
g_thread_end = 1;
return 0;
}
void main()
{
THREADHANDLE pthread = NULLTHREAD;
printf("Creating thread.../n");
pthread = os_creatthread(threadfun,NULL);
printf("Creating thread completed.Handle:%x/n",pthread);
printf("Waiting for thread.../n");
waitforthread();
printf("Waiting ended./n");
}
//////////////////////////////////////////////////////////////////////////
/*在Windows下面,用CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreateionFlags,
LPDWORD lpThreadId)
函數可以創建一個線程,第一個參數指線程的安全屬性的設定,第二個參數表示線程堆棧的大小,第三個參數表示線程函數名稱,第四個參數線程執行的參數,第五個參數指線程的優先級,最後一個參數指向線程的ID。關於windows下用C創建多線程可以查查MSDN即可。
*/
//////////////////////////////////////////////////////////////////////////