2021-04-12 20:32:36
进程和线程是操作系统中的两个基本概念,其区别与联系常作为面试/考试中的基础题目出现,可以说是非常重要的。现对其概念做出详细阐述如下。
进程是系统进行资源分配和调度的基本单位;在内存中有独立的地址空间。
线程是进程的一个实体,是CPU的调度单位,将线程的运动属性分离出来,增加了线程内部的并发度;进程基本不拥有系统资源,只有在运行中必不可少的一些寄存器、栈等。
例如,“数学卷子”是一个进程,而“数学卷的第一题”、“数学卷的第二题”是进程中的线程。
线程是依附于进程存在的概念,是进程中的不同执行路径,能够实现并发;
进程内的多个线程共享地址空间及大部分数据;
一个程序至少有一个进程,一个进程至少有一个线程。
线程的优点:
执行开销小。
(1)资源开销:进程是很昂贵的多任务工作方式,启动同一进程内的线程耗时远小于启动一个进程的耗时,线程间彼此切换所需时间远小于进程间彼此切换所需时间;
(2)通信开销:进程间只能通过通信方式进行数据共享,费时且不易实现;进程间共享内存和文件,通信无需调用内核。
线程的缺点:
线程没有独立的地址空间,一个进程死掉就等于整个进程死掉,健壮性较差;而进程之间不会受到影响。