综合CPU利用率来讲,计算机远古时期,为提高CPU利用率,有以下概念
串行进程->并行进程->线程->线程池>->虚拟线程(协程)
一,串行进程,
早期的操作系统对任务调度,往往从最简单的实现开端,串型进程意思是对分配的一个任务,其任务能百分百占用CPU,哪怕该任务处于阻塞状态。只有等上一个任务完成后,才能执行下一个任务,而IO操作耗时占比较大,因此此时的CPU利用率非常低。
二,并行进程
此时的任务调度,多了时间片的概念,即多任务时,会给每个任务分配一定的CPU时间片,这样,单个任务的阻塞就不会影响其它任务的执行,进一步提高了CPU利用率。
这虽进一步提高了CPU利用率,但对应的也有代价,即CPU进程上下文切换,需要保存上下文环境,对于单个进程来说,其分配的内存是私有的,因此上下文切换会涉及到内存的切换。
三,线程
考虑到进程中CPU上下文切换的开销过大,这时出现了所谓的轻量级进程,即线程。本质上线程与进程没有更多区别,