概念
作业:作业相当于一个程序,相当于整个程序中的一段段可以并发执行的代码。
程序:描述计算机所要完成的具有独立功能的,并在时间上按严格次序前后相继的计算机操作序列集合,是一个静态的概念,它体现了编程人员要求计算机完成相应功能时所应采取的顺序步骤。
进程:用程序作为描述其执行过程以及共享资源的基本单位是不合适的。需要有一个能描述程序执行过程且能用来共享资源的基本单位,这个基本单位称为进程。在系统中能够独立运行并作为资源分配的独立单位,由一组机器指令、数据和堆栈等组成,是一个能够独立运行的活动实体。
线程:线程是进程的一部分,线程也是CPU调度的一个基本单位。
线程由线程标识符程序计数器,一组寄存器的值和堆栈组成,除了上述在运行中必不可少的资源外,线程基本上不拥有系统的资源,但它可以和属于同一个进程的其他线程共享进程所拥有的全部资源,如进程的代码段,数据段,已打开的文件,定时器和信号量机构等。
协程:单进程的条件下实现并发操作系统无法感知到单线程中的协程之间的切换因为操作系统中并没有协程的概念,协程是程序员用代码实现的一种并发实现协程的必备条件基于多道技术,我们知道了线程间的切换需要实现空间和时间上的复用,即:保存状态+切换当程间遇到阻塞时进行切换才是意义的,如果遇到计算时还切换,只会徒增切换时间。