多线程1_Kenney_新浪博客

----------------------------------------------------------------------------------------------
创建关闭线程

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)
在哪个线程调,退出哪个线程


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值