1,句柄关闭
CreateThread创建线程后,需要用CloseHandle来关闭线程的句柄,以免造成内存泄露。
_beginthreadex内部会自动调用 _endthreadex._beginthread内部会自动调用_endthread.
_endthread内部会自动调用CloseHandle关闭当前Thread内核对象的句柄,所以在用_beginthread 时我们不需要在主线程中调用CloseHandle来关闭子线程的句柄。
_endthreadex相比_endthread而言更安全。它不会自动关闭当前Thread内核对象的句柄。所以在用_beginthreadex时我们需要用CloseHandle来关闭子线程的句柄。
2,入口函数原型不同:
CreateThread:CreateThread: typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter );
_beginthreadex:unsigned (__stdcall * _StartAddress) (void *)
_beginthread:void (__cdecl * _StartAddress) (void *)
说明:__stdcall 是指定系统调用的函数,__cdecl是默认声明的函数。