名次解释
1、进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的,还包括当前的活动,通过的值和处理的内容来表示。
进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括区域(text region)、数据区域(data region)和(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为。
2、线程
3、协程
区别与联系
一句话总结
进程:资源分配的最小单元。早期面向进程的程序设计中进程是基本执行体;面向线程的程序设计中,进程是线程的容器,线程干活,每个进程至少有一个线程。
线程:CPU调度执行的最小单元。真正干活的。为了提高CPU的利用率和执行多任务。
协程:可协同执行的线程。也是干活的。非系统调度,协程之间调度。
资源方面
多进程:子进程和父进程有不同的代码块与资源
多线程:多个线程公用父进程的资源,线程自己不拥有资源
多协程:可以共享上下文
开销和切换成本
进程上下文切换成本很高,需要寄存很多东西
线程切换成本较低,占用资源较少
协程是非常轻量级的用户态线程,程序自己调度,切换基本没有成本
调度方面
进程是系统调度
线程是系统调度
协程是程序自身实现调度