第6章 线程的基础知识

第6章 线程的基础知识

线程也是由两个部分组成:

  • 线程的内核对象,系统用它来管理现场。也是系统用来存放线程统计信息的地方。
  • 线程堆栈,用于维护线程在执行代码时需要的所有函数参数和局部变量。

6.3 线程函数

DWORD WINAPI ThreadFunc(PVOID pvParam)
{
  DWORD dwResult = 0;
  ... 
  return(dwResult);
}
  • 多个线程函数必须赋予不同的名字。
  • 参数定义由程序员决定,没有ANSI/Unicode问题。
  • 线程必须返回一个值,将成为推出代码。
  • 线程函数应尽可能使用函数参数和局部变量。使用静态变量和全局变量时,多个线程可以同时访问这些变量,可能破坏变量的内容。

6.4 CreateThread函数

HANDLE CreateThread(
   PSECURITY_ATTRIBUTES psa,
   DWORD cbStack,
   PTHREAD_START_ROUTINE pfnStartAddr,
   PVOID pvParam,
   DWORD fdwCreate,
   PDWORD pdwThreadID);

新线程可以访问进程的内核对象的所有句柄、进程中的所有内存和在这个相关进程中的所有其他线程的堆栈。

CreateThread是用来创建线程的Windows函数,如果正在编写C/C++代码,决不应该调用CreateThread。相仿应该调用Visual C++运行期库函数_beginthreadex。

6.4.1 psa

同进程,一般传入NULL,如果希望子进程能继承该线程对象的句柄,则必须设定该结构的bInheritHandle成员为TRUE。

6.4.2 cbStack

这段没看懂

6.4.3 pfnStartAddr和pvParam

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值