----------------------------------------------------------------------------------------------
创建关闭线程
CreateThread: 创建线程
HANDLE CreateThread(PSECURITY_ATTRIBUTES psa, DWORD cbStack, PTHREAD_START_ROUTINE pfnStartAddr, PVOID pvParam, DWORD fdwCreate, PDWORD pdwThreadID);
PSECURITY_ATTRIBUTES psa: 当psa为NULL表示使用默认安全属性
DWORD cbStack: 设定线程可以将多少地址空间用于它自己的堆栈,0表示使用默认值
PTHREAD_START_ROUTINE pfnStartAddr: 用于指明想要新线程执行的线程函数的地址,函数原型为 DWORD WINAPI ThreadFunction(PVOID pvParam)
PVOID pvParam: pfnStartAddr指向的函数的参数
DWORD fdwCreate: 设定用于控制创建线程的其他标志,0表示创建后立即调用,CREATE_SUSPENDED表示创建后悬挂起该函数
PDWORD pdwThreadID:线程的ID
ExitThread: 退出当前线程
VOID ExitThread(DWORD dwExitCode);
DWORD dwExitCode: 告诉系统将线程的退出代码设置为什么
TerminateThread: 终止当前线程或终止其他线程
BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode);
HANDLE hThread: 标识被终止运行的线程的句柄
DWORD dwExitCode: 告诉系统将线程的退出代码设置为什么
不建议使用ExitThread与TerminateThread,会导致线程不能被正常清理
----------------------------------------------------------------------------------------------
c++运行时库
创建线程
unsigned long _beginthreadex(void *psa,unsigned stack_size,unsigned (__stdcall *start_address)(void *),void *arglist,unsigned initflag,unsigned *thrdaddr);
void *psa: 当psa为NULL表示使用默认安全属性
unsigned stack_size: 设定线程可以将多少地址空间用于它自己的堆栈,0表示使用默认值
unsigned (__stdcall *start_address)(void *):
void *arglist: 参数列表
unsigned initflag: 设定用于控制创建线程的其他标志,0表示创建后立即调用,CREATE_SUSPENDED表示创建后悬挂起该函数
unsigned *thrdaddr: 线程的ID
退出线程
void _endthreadex(unsigned retcode)
在哪个线程调,退出哪个线程
创建关闭线程
CreateThread: 创建线程
HANDLE CreateThread(PSECURITY_ATTRIBUTES psa, DWORD cbStack, PTHREAD_START_ROUTINE pfnStartAddr, PVOID pvParam, DWORD fdwCreate, PDWORD pdwThreadID);
PSECURITY_ATTRIBUTES psa: 当psa为NULL表示使用默认安全属性
DWORD cbStack: 设定线程可以将多少地址空间用于它自己的堆栈,0表示使用默认值
PTHREAD_START_ROUTINE pfnStartAddr: 用于指明想要新线程执行的线程函数的地址,函数原型为 DWORD WINAPI ThreadFunction(PVOID pvParam)
PVOID pvParam: pfnStartAddr指向的函数的参数
DWORD fdwCreate: 设定用于控制创建线程的其他标志,0表示创建后立即调用,CREATE_SUSPENDED表示创建后悬挂起该函数
PDWORD pdwThreadID:线程的ID
ExitThread: 退出当前线程
VOID ExitThread(DWORD dwExitCode);
DWORD dwExitCode: 告诉系统将线程的退出代码设置为什么
TerminateThread: 终止当前线程或终止其他线程
BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode);
HANDLE hThread: 标识被终止运行的线程的句柄
DWORD dwExitCode: 告诉系统将线程的退出代码设置为什么
不建议使用ExitThread与TerminateThread,会导致线程不能被正常清理
----------------------------------------------------------------------------------------------
c++运行时库
创建线程
unsigned long _beginthreadex(void *psa,unsigned stack_size,unsigned (__stdcall *start_address)(void *),void *arglist,unsigned initflag,unsigned *thrdaddr);
void *psa: 当psa为NULL表示使用默认安全属性
unsigned stack_size: 设定线程可以将多少地址空间用于它自己的堆栈,0表示使用默认值
unsigned (__stdcall *start_address)(void *):
void *arglist: 参数列表
unsigned initflag: 设定用于控制创建线程的其他标志,0表示创建后立即调用,CREATE_SUSPENDED表示创建后悬挂起该函数
unsigned *thrdaddr: 线程的ID
退出线程
void _endthreadex(unsigned retcode)
在哪个线程调,退出哪个线程