线程(Thread)相关概念
1 定义
线程:也称为轻量级进程,是程序执行流的最小单元,包括处理器上下文信息和数据区域。
多线程:指操作系统在单个进程内支持多个并发执行路径的能力。
单线程:指每个进程只有一个线程在执行的传统方法。
2线程的优点
A 在一个已有进程中创建一个新线程比创建一个新进程需要的时间要少很多。 (创建快)
B 终止一个线程比终止进程花费时间少。(结束块)
C 同一个进程内线程间切换比进程间切换发费时间少。(切换快)
D 线程提高了不同程序间通信的效率。(通信快)
3 四种与线程状态改变的操作
派生:当派生一个新进程时,同时也为该进程派生一个线程。
阻塞:当线程需要等待一个事件时,将被阻塞。
解除阻塞:当阻塞线程的事件发生时,该线程被庄毅到就绪队列中。
结束:当一个线程完成时,其寄存器上下文和栈都被释放。
4线程的实现(分类)
4.1 用户级线程
定义:在一个纯粹的用户级线程软件中,有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在。
优点:a,进程不需要为了管理切换到内核态,节省了切换开销。
b,调度可以使应用程序相关的。
c,用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程。
缺点:a,在典型的操作系统中,许多系统调用都会引起阻塞。(当用户级线程执行系统调用时,该进程中所有的线程都会被阻塞。)
b,在纯粹的用户级线程策略中,一个多线程用户程序不能利用多处理技术。
4.2内核级线程
定义:在一个纯粹的内核级线程软件中,有关线程管理的所有工作都是由内核完成的,应用程序部分没有进行线程管理的代码,只有一个到内核线程设施的应用程序编程接口(API)。
优点:a,内核可以同时把同一个进程中的多个线程调度到多个处理器中。
b,如果进程中的一个线程被阻塞,内核可以调度该进程中其他线程继续执行。
c,内核例程自身也可以是多线程的。
缺点:把控制从一个线程传送到同一个进程内的另一个线程时,需要内核的状态切换。
4.3 混合方法
某些操作系统使用用户级线程和内核级线程结合的处理方法。
4.4其他方案
线程和进程的比例关系不同。
转载请注明出处:CSDN 博客http://blog.csdn.net/chenzhao2013/article/details/46606145