您的位置:首页 > 其它

进程与线程的区别

2017-09-05 20:19 246 查看
说要面试这个东西,提前做下总结,内容都是去各大博主那里拈来的。

一般系统下的进程与线程

定义方面:进程是具有独立功能的程序在某个数据集合上的一次运行过程;线程是进程中的一个执行路径。

角色方面:在支持线程机制的系统中,进程是系统资源分配和调度的独立单位,线程是系统调度和分配的最小基本单位。线程也称轻量级进程。(没有线程的系统,进程就成了基本的了)

资源方面:进程拥有一定的系统资源,而线程只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的地址空间等全部资源.

独立性方面:除去共享资源外,进程有自己独立的地址空间;而线程不能独立执行,线程必须依赖于进程而存在。同一进程下的不同线程间的独立性远低于不同进程间的独立性。

开销方面:进程上下文切换需要切换页表等重量级资源,线程上下文切换只需要切换寄存器等轻量级数据。线程执行、切换开销小,但不利于资源的管理和保护;而进程正相反

数量方面;一个程序至少有一个进程,一个进程至少有一个线程即主线程
 
逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。多线程提高了程序的并发性,降低切换开销,提升系统的吞吐量和资源利用率。

 

Linux有点特殊哟!其线程和进程太相近了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: