线程、协程、异步
线程:CPU调度的最小单位,是操作系统级别的概念。想开辟多线程,需要调用操作系统底层的API。
为什么会出现多线程?
我们以读取文件为例
根据上图所示,我们可以发现当有读取文件请求时,CPU会先触发一个DMA中断,让DMA去处理后面的工作,再中断返回通知CPU处理,当DMA去处理的这段时间,CPU是处于闲置状态的,这时就可以给其他线程去使用,所以如果只是一个单线程程序,那么会造成CPU的闲置,没有充分利用到CPU资源。
协程
编程语言级别的线程,用户自定义的线程,对于上述的线程是有限制的,而我们可以使用go语言来创建协程,一样能模拟线程的效果。
异步
对于读取文件中DMA处理就是一个异步过程。