CreateThread()和_beginthreadex()的区别。为什么建议使用_beginthreadex()
下面是总结《windows核心编程》中关于CreateThread()和_beginthreadex()的区别。书上有具体的代码。但是篇幅很长。总结如下:请对照参考beginthreadex()函数在创建新线程时会分配并初始化一个_tiddata块。这个_tiddata块自然是用来存放一些需要线程独享的数据。事实上新线程运行时会首先将_tiddata块与自己进一步关联起来。然后新线程调用标准C运行库函数如strtok()时就会先取得_tiddata块的地址再将需要保护的数据存入_tiddata块中。这样每个线程就只会访问和修改自己的数据而不会去篡改其它线程的数据了。因此,如果在代码中有使用标准C运行库中的函数时,尽量使用_beginthreadex()来代替CreateThread()。
支持楼主。
页:
[1]