1 进程和线程区别(趋势&IBM)
我发现这个题目出现的频率实在是太高太高了,我总结了一下,回答这个问题要从四个角度来说
a 调度的角度:在引入线程的操作系统中,把线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位,把传统的进程的两个属性分开,使得线程基本上不掌控资源,这样线程可以轻装上阵,从而显著的提高系统的并发程度。
b 资源分配的角度:进程拥有资源,是操作系统中拥有资源的一个基本单位。一般而言线程自己不拥有资源,但它可以访问隶属进程的资源,即一个进程的代码段、数据段及所拥有的系统资源,如已经打开的文件,I/O设备等,可以供该进程中的所有线程所共享。
c 并发的角度:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程的多个线程之间亦可并发执行,使得操作系统具有更好的并发性,从而能更加有效地提高系统资源的利用率和系统的吞吐量。
d 系统开销的角度:在创建或者撤销进程时,系统都要为之创建和回收进程控制块,分配和回收资源,如内存空间和I/O设备等,操作系统所付出的开销明显大于线程创建或撤销时的开销。在进程切换时,涉及到当前进程CPU环境的保存及新被调度运行进程的CPU环境的设置,而线程切换时只需保存和设置少量的寄存器内容,不涉及存储器管理方面的操