6.4 CreateThread函数
前面已经讲述了调用C r e a t e P r o c e s s函数时如何创建进程的主线程。如果想要创建一个或多
个辅助函数,只需要让一个已经在运行的线程来调用C r e a t e T h r e a d:
当C r e a t e T h r e a d被调用时,系统创建一个线程内核对象。该线程内核对象不是线程本身,
而是操作系统用来管理线程的较小的数据结构。可以将线程内核对象视为由关于线程的统计信
息组成的一个小型数据结构。这与进程和进程内核对象之间的关系是相同的。
系统从进程的地址空间中分配内存,供线程的堆栈使用。新线程运行的进程环境与创建线程
的环境相同。因此,新线程可以访问进程的内核对象的所有句柄、进程中的所有内存和在这个相
同的进程中的所有其他线程的堆栈。这使得单个进程中的多个线程确实能够非常容易地互相通信。
注意C r e a t e T h r e a d函数是用来创建线程的Wi n d o w s函数。不过,如果你正在编写
C / C + +代码,决不应该调用C r e a t e T h r e a d。相反,应该使用Visual C++运行期库函数
_ b e g i n t h r e a d e x。如果不使用M i c r o s o f t的Visual C++编译器,你的编译器供应商有它自
己的C r e a t e T h r e d替代函数。不管这个替代函数是什么,你都必须使用。本章后面将要
介绍_ b e g i n t h r e a d e x能够做什么,它的重要性何在。
如果你正在编写 C / C + +代码,决不应该调用C r e a t e T h r e a d
转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
_ b e g i n t h r e a d e x函数与C r e a t e T h r e a d函数
若要使
c 多线程 编译器 编程 数据结构 -
1010 c-e系统