线程的基础知识
2008-09-03 09:13
120 查看
几个知识点:
1.线程由两部分组成:线程的内核对象,操作系统用它来对线程实施管理,内核对象也是系统用来存放线程统计信息的地方;另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。
2.线程在它所属的进程地址空间中执行代码,并且在进程的地址空间中对数据进行操作。
3.注意CreateThread函数是用来创建线程的Windows函数。如果你正在编写C/C++代码,绝不应该调用CreateThread。应该使用Visual C++运行期库函数_beginthreadex。
4.与3相对应的,必要的时候,使用_endthreadex。
5._beginthreadex和CreateThread的区别如下(此段摘自MSDN):_beginthreadex使你可以将多个参数传递到线程;_beginthreadex初始化某些C运行时库变量,在线程中使用C运行时库时,这一点很重要;CreateThread帮助提供对安全属性的控制,可以使用此函数启动处于挂起状态的线程。
6.终止线程的运行,有如下几种方法:
线程函数返回(最好使用这种方法);
通过调用ExitThread函数,线程将自行撤销(最好不要使用这种方法);
同一个进程或另一个进程中的线程调用TerminateThread函数(应该避免使用这种方法);
包含线程的进程终止运行(应该避免使用这种方法)。
7.ExitThread和TerminateThread的区别是:ExitThread总是撤销调用的线程,而TerminateThread可以撤销任何线程,但是TerminateThread函数是异步的,函数返回时,不能保证线程被撤销,如果需要确切地知道线程已经终止运行,必须调用WaitForSingleObject或者类似的函数,传递线程的句柄。而且,使用TerminateThread函数时,在拥有该线程的进程终止运行之前,系统不会撤销该线程的堆栈。
8.线程句柄和进程句柄,有伪句柄和实句柄之分。一般情况下,使用伪句柄就行,但是有些情况下,需要使用DuplicateHandle函数将伪句柄转换成实句柄。
1.线程由两部分组成:线程的内核对象,操作系统用它来对线程实施管理,内核对象也是系统用来存放线程统计信息的地方;另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。
2.线程在它所属的进程地址空间中执行代码,并且在进程的地址空间中对数据进行操作。
3.注意CreateThread函数是用来创建线程的Windows函数。如果你正在编写C/C++代码,绝不应该调用CreateThread。应该使用Visual C++运行期库函数_beginthreadex。
4.与3相对应的,必要的时候,使用_endthreadex。
5._beginthreadex和CreateThread的区别如下(此段摘自MSDN):_beginthreadex使你可以将多个参数传递到线程;_beginthreadex初始化某些C运行时库变量,在线程中使用C运行时库时,这一点很重要;CreateThread帮助提供对安全属性的控制,可以使用此函数启动处于挂起状态的线程。
6.终止线程的运行,有如下几种方法:
线程函数返回(最好使用这种方法);
通过调用ExitThread函数,线程将自行撤销(最好不要使用这种方法);
同一个进程或另一个进程中的线程调用TerminateThread函数(应该避免使用这种方法);
包含线程的进程终止运行(应该避免使用这种方法)。
7.ExitThread和TerminateThread的区别是:ExitThread总是撤销调用的线程,而TerminateThread可以撤销任何线程,但是TerminateThread函数是异步的,函数返回时,不能保证线程被撤销,如果需要确切地知道线程已经终止运行,必须调用WaitForSingleObject或者类似的函数,传递线程的句柄。而且,使用TerminateThread函数时,在拥有该线程的进程终止运行之前,系统不会撤销该线程的堆栈。
8.线程句柄和进程句柄,有伪句柄和实句柄之分。一般情况下,使用伪句柄就行,但是有些情况下,需要使用DuplicateHandle函数将伪句柄转换成实句柄。
相关文章推荐
- java 多线程基础知识3----线程封闭
- Android 进程与线程基础知识
- 线程基础知识
- Java核心技术卷I:基础知识(原书第8版):14.3 线程状态
- 线程基础知识系列(一)线程的创建和启动
- 操作系统之线程的基础知识
- 4.线程的基础知识
- 线程的基础知识
- Java线程基础知识
- 线程的基础知识
- Java笔记 - 线程基础知识
- 基础线程知识
- 基础知识:进程和线程的区别
- windows程序设计的一些基础知识点—— 进程及其线程
- 黑马程序员——java基础知识篇——>线程
- 线程基础知识系列(四)线程的同步2 线程通信和Condition变量
- 线程的基础知识
- java线程基础知识和小案例
- 线程基础知识系列(三)线程的同步
- 操作系统基础知识-用户空间实现线程-内核实现线程