2019-03-28

JS 事件循环机制 - 任务队列、web API、JS主线程的相互协同

这篇文章的核心是分析js的事件循环,在此我们需要了解js单线程,及由此产生的同步执行环境和异步执行环境。

js是单线程,单线程也即是任务是串行的,后一个任务需要等待前一个任务的执行,这就可能出现长时间的等待。但由于类似ajax网络请求,setTimeout的时间延迟,dom时间的用户交互等,这些任务并不消耗CPU,是一种空等,资源浪费,因此出现异步。通过将任务交给相应的异步模块去处理,主线程读取相应的callback,进行后续的操作,最大程度的利用cpu,此时出现了同步和异步执行的概念。同步执行是主线程按照顺序,串行执行任务,异步执行就是cpu跳过等待,先处理后续任务。由此产生了任务队列与事件循环,来协调主线程与异步模块之间的工作。

事件循环的机制

你可能感兴趣的:(2019-03-28)