千头万绪

 

这两天刚好手头有点事情跟线程相关, 刚好细细拜读jjh先生所译的win32线程大作, 有点不知所云, 起码是被弄的一愣一愣的, 偏听则暗, 果然如此, 只知其然而不知所以然, 恐怕过两天还是会忘记的. 就当写写心得记录了.

 

1.         已知windows下可以用如下方法创建线程.

1)        CreadThread(…). API

2)        _beginthread(…). CRT

3)        _beginthreadex(…). CRT

4)        AfxBeginThread(…). MFC

由于AfxBeginThread()同学勾搭MFC, 扬言誓死不分, 开除先.

_beginthreadex()_beginthread()长的很像, 没什么直接血缘关系, 但都是CRT所提供的线程创建方式. 显著区别在于参数和返回值上.

2.         _beginthread(…)_beginthreadex(…)区别.

1)        参数区别.

2)        返回值区别

_beginthread()返回-1表示失败, _beginthreadex()返回0表示失败

3)        实际过程区别.

3.         _beginthreadex(…)CreadThread(…)区别.

1)        参数区别.

两者参数基本相同, 只是CreadThread()的参数是windows定义的win32数据类型, _beginthreadex()是标准C/C++的数据类型. 需要注意的是, CreateThread()的第三个参数函数指针是unsign long, _beginthreadex()的第三个参数函数指针是unsign int.

2)        返回值区别.

CreateThread(), 返回的是创建的线程的HANDLE,

_beginthreadex(), 返回的一个是unsigned long. 需通过reinterpret_cast<HANDLE>(HANDLE)来强制转换.

3)        实际过程区别.

       一般不建议直接调用CreateThread(), 除非可以非常确定

4.         选择_beginthreadex()CreateThread()的一般性规则.

不建议使用CreateThread(). 尤其当线程:

l         使用了malloc()/free(), new/delete的线程.

l         调用stdio.hio.h中声明的任何函数.

l         使用浮点变量.

5.         为什么winCE上只能用CreateThread()?

我也不知道为什么….

 

参考文献:

1.         MSJ(Mircsofts System Journal) July 1999

http://www.microsoft.com/msj/0799/Win32/Win320799.aspx

2.         <Win32多线程程序设计>

3.         <windows核心编程>. 6.

4.         oRbIt 的专栏. <CreateThread()_beginthreadex()区别>.

http://blog.csdn.net/orbit/archive/2005/07/30/440118.aspx

向远处看的专栏. <CreateThread()_beginthreadex()区别>

http://blog.csdn.net/xuxinshao/archive/2005/09/14/480797.aspx

搞不清谁的原创了….两位大仙都写原创那肯定有个是引用的啊要不难道是异灵事件?

5.         kind_li的专栏 kind_li 线程知识点.

http://blog.csdn.net/kind_li/archive/2003/04/03/10998.aspx

6.         运行时: 管理进程和线程

http://www-128.ibm.com/developerworks/cn/linux/sdk/rt/part7/index.html

7.         MSDN, _beginthreadex()_beginthread()的区别.

http://msdn2.microsoft.com/en-us/library/kdzttdcb(VS.71).aspx
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值