[js一点也不难]什么是Event Loop

JavaScript 的线程机制

JavaScript有一个<b>主线程</b>和<b>Event Loop线程(消息线程)</b>

1、<b>主线程</b>是同步的,也就是一个<b>执行栈</b>。前一个任务结束,才会执行后一个任务。

2、<b>Event Loop线程</b>的任务是不直接进入主线程的执行栈的,而是进入<b>“任务队列”</b>。只有“任务队列”通知主线程,某个异步任务可以执行了,该任务才会进入主线程的执行栈执行。

“任务列表”的机制是<b>先进先出</b>。

大致步骤如下:

(1)所有同步任务都在主线程上执行,形成一个执行栈。
(2)主线程之外,还存在一个“任务队列”。只要异步任务有了运行结果(回调函数等),就在"任务队列"之中放置一个事件。
(3)一旦执行栈中的所有同步任务执行完毕,系统就会读取"任务队列"的任务进入执行栈,开始执行。
(4)主线程不断重复第三步。

总结

JavaScript只有一个主线程的执行栈,其他异步任务的结果都会加入到任务队列,等待主线程的执行栈无任务的时候,就会去获取任务队列的任务执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容