并发,并行,异步,同步,异步编程,多线程
首先,简单理解并发,并行,异步,同步
并发
计算机能同时进行多个任务可以彼此穿插着进行
一种实现方式是,单个CPU时间片的方式。
单个CPU被不同任务轮流使用,CPU时间片的时间间隔很短让人觉得是在同时进行。类似吃饭的时候边吃饭边玩手机,实际上是同一个大脑管理,短暂的时间段内交替吃饭或者玩手机,让人觉得是在同时进行。
并行
多核同时进行不同任务。
异步
不等一个任务完成就执行下一任务
同步
完成一个任务之后才开始进行下一个任务
多线程
并行,多用于科学计算,图像处理等集中使用处理器的场合
(单线程)异步编程
单线程的并发执行,多用于I/o密集的应用程序,减少执行时间差异造成的CPU资源浪费
js对异步编程的实现
利用回调函数
异步发起的时候,主线程继续执行,异步请求去执行另一个任务,结束后返回来执行回调函数。主线程和回调函数在一个线程中。
避免回调地狱,就是回调函数的层层嵌套,出现了Promise
ES6 使用async和await的组合来实现,底层还是Promise