进程 线程

1、因为进程有自己独立的内存地址空间,而线程共享进程的内存地址空间。

 

 

 

2、另一个看进程和线程的角度是进程模型基于两类不同的概念:资源的组织和执行。

进程是用于组织资源的单位,进程将相关的资源组织在一起,这些资源包括:内存地址空间,程序,数据等,将这些以进程的形式组织起来可以使得操作系统管理这些资源更为容易。

 

而线程,是每一个进程中执行的一个条线。线程虽然共享进程中的大多数资源,但线程也需要自己的一些资源,比如:用于标识下一条执行指令的程序计数器,一些容纳局部变量的寄存器,以及用于表示执行的历史的栈。

总而言之:进程是组织资源的最小单位,而线程是安排CPU执行的最小单位。

 

 

 

3、结合切换项目

进程:每建立一条TCP连接就用一个进程处理该连接。为什么用进程?

线程:在切换进程中,有一个线程监听是否达到切换条件。

 

 

 

 

4、补充:线程的实现

在操作系统中,线程可以实现在用户模式下,也可以实现在内核模式下,也可以两者结合实现。   

 

当线程在用户空间下实现时,操作系统对线程的存在一无所知,操作系统只能看到进程,而不能看到线程。在这种模式下,每一个进程中都维护着一个线程表来追踪本进程中的线程在用户空间下实现线程使得程序员可以实现自己的线程调度算法。这种模式最致命的缺点也是由于操作系统不知道线程的存在,因此当一个进程中的某一个线程进行系统调用时,比如缺页中断而导致线程阻塞,此时操作系统会阻塞整个进程,即使这个进程中其它线程还在工作。

 

线程实现在操作系统内核中在这种模式下,操作系统知道线程的存在。此时线程表存在操作系统内核中。操作系统可以选择将CPU交给同一进程中的其它线程,或是其它进程中的线程,而在用户空间下实现线程时,调度只能在本进程中执行,直到操作系统剥夺了当前进程的CPU。

posted @ 2013-05-17 10:43  helloweworld  阅读(179)  评论(0编辑  收藏  举报