1. 进程与线程
对于操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元
一个进程包含三个部分:代码、数据资源和独立内存空间。
线程是任务的实际执行者,一个进程至少拥有一个主线程。
无论是进程还是线程,都由操作系统控制,当多线程在不同CPU进行切换时消耗时间长,协程的出现就是为了解决这个问题。
2.协程
协程是一种用户态的轻量级线程,一个线程可以拥有多个协程。
以 Python 为例介绍协程的概念。
Python是以 yield 关键字来实现协程,当函数体中遇到 yield 关键字,函数停止运行,直到调用 next() 方法函数才会继续执行。
从上面的过程中可以看到,协程的执行是由用户来控制的,可以避免CPU的切换,程序运行高效。