一、什么是进程?什么是线程?
- 进程是一个可并发执行的,具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和调度的独立单位。进程是资源分配的基本单位。
- 线程也称为轻量级进程(LWP),是程序执行流量的最小单位,它是进程的一个实体,是系统独立调度和分派处理机的基本单位。线程是操作系统调度的最小单位。
简而言之:进程是资源分配的基本单位,线程是系统调度的基本单位。
二、进程和线程的区别?从调度、并发性、拥有资源和系统开销四个方面来比较:
- 调度。进程是资源分配的基本单位,线程是系统调度的基本单位。
- 拥有资源。进程是拥有资源的独立单位。而线程不拥有系统资源,而是共享进程的资源(包括代码段、数据段即系统资源等)。
- 并发性。多线程可以提高服务的质量,在一个线程阻塞时,还有其他线程提供服务。
- 系统开销。进程切换的开销远远大于线程切换的开销,进程的切换需要保存很多现场。但线程只需要保存和设置少量的寄存器内容,不涉及存储器管理方面的操作。
三、为什么会提出线程这个概念?进程的缺点是什么?
- 进程切换开销大
- 进程通信代价大
- 进程之间并发性粒度粗,并发度不高
- 不适合并行计算和分布式并行计算的要求
- 不适合客户-服务器计算的要求
- 操作系统中引入进程的目的是为了使多个程序并发执行,改善资源的利用率以提高系统的吞吐量。
进程的两个属性:1、进程是拥有资源的独立单元 2.进程可以被cpu调度的独立单位。
为了更好地并发 , 减少操作系统的开销。把2独里出来实现,即进线程。