标签:
1.线程是我们为了让进程能够同时干多件事而发明的分身术。在线程模式下,线程是进程的不同执行序列,一个进程至少有一个线程,但也可以有多个线程。将进程分为线程还可以有效地利用多核处理器和多核计算机,在没有线程的情况下,增加一个处理器并不能提高一个进程的执行速度,但如果分解为不同的线程,可以让各线程运转在不同的处理器上,从而提高了进程的速度。
2.如进程相似,系统管理线程是通过线程控制表和线程控制块来实现的。
3.线程与进程的不同之处在于,线程共享了一个进程空间,进程与进程之间基本是独立的空间。这些共享的资源显然不需要存放在线程控制块里,而是存放在进程控制块里,线程共享的资源通常有地址空间,全局变量,文件,子进程,信号等,但程序计数器不能共享,寄存器和状态字不能共享,栈也不能共享。
4.
5.内核态线程实现:操作系统同时保有进程控制块和线程控制块。最重要的好处就是用户编程简单。缺点首先是效率低,每次线程切换都需要陷入内核,这是要花时间的;其次是占用了内核宝贵的资源,线程的数量基本都比进程的数量多很多;最后线程的内核态实现要修改现有的很多操作系统,所以最后线程还是在用户态实现的更多。
6.用户态线程实现:就是用户自己做线程切换,自己管理线程信息,而操作系统无需知道线程的存在。也就是用户自己写一个执行系统做调度器,执行系统做调度器也是一个线程,没有能力强行夺走控制权,所以大家都必须合作。优点是:首先很灵活,因为操作系统无需知道线程,所以在任何操作系统基本都是可用的;其次,由于不用陷入内核,所以线程切换快。缺点:无法完全达到线程提出所要达到的目的:进程级多道编程。
7.线程阻塞引发的一系列探究?
8.现代操作系统将用户态和内核态的线程模式结合了起来。用户态的执行系统负责进程内的线程在非阻塞时的切换,而内核态的操作系统负责阻塞时的切换,而用户态线程数较多,内核态线程数少,每一个内核线程可以服务一个或多个用户态线程。
标签:
原文地址:http://blog.csdn.net/tangxing1212/article/details/44059745