进程,线程和协程
1,任务调度 要理解进程和线程,必须要先了解一下操作系统的一些相关概念。大部分操作系统(如Windows、Linux)的 任务调度 是采用 时间片轮转的抢占式调度方式 ,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于它的时间片的到来。这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”,这也就是我们所说的并发(别觉得并发有多高深,它的实现很复杂,但它的概念很简单,就是一句话:多个任务同时执行)。多任务运行过程的示意图如下: 操作系统中的任务调度 2,进程 我们都知道计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;应用程序侧是具有某种功能的程序,程序是运行于操作系统之上的。 进程 是一个具有一定独立功能的 程序在一个数据集上的一次动态执行的过程, 是应用程序运行的载体, 操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位 。 进程一般由程序、数据集合和进程控制块三部分组成。 程序用于描述进程要完成的功能