1. 创建线程
● HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter,
DWORD dwCreationFlags, LPDWORD lpThreadId) // 这是windows操作系统提供的API
●uintptr_t _beginthreadex(void * lpThreadAttributes, uint32_t dwStackSize,
uint32_t __stdcall (*lpStartAddress)(void *), void * lpParameter,
uint32_t dwCreationFlags, uint32_t *lpThreadId) // 这是CRT库函数,最终会调用CreateThread
●unsigned long _beginthread( uint32_t __stdcall (*lpStartAddress)(void *), uint32_t dwStackSize,
void * lpParameter) // 这是CRT函数,最终会调用CreateThread
2. 挂起线程
● uint32_t SuspendThread(__in HANDLE hThread)
3. 重起线程
● uint32_t ResumeThread(__in HANDLE hThread)
4. 结束线程
● void _endthread(void) // 这是CRT库函数,被_beginthread内部调用,也会调用CloseHandle(),
● void _endthreadex(uintptr_t retVal) // 这是CRT库函数,被_beginthreadex内部调用,但不会调用CloseHandle(),
● void CloseHandle(HANDLE hThread) // 这是WINAPI函数
5. 线程等待
● DWORD WaitForSingleObject(HANDLE hThread, DWORD dwMilliSeconds) // 这是WINAPI函数
● DWORD WaitForMultipleObjects(DWORD nCount, HANDLE *phThread,
BOOL boWaitAll, DWORD dwMilliSeconds) // 这是WINAPI函数