js执行队列

JS执行队列

1. JS是单线程

JavaScript语言的一大特点就是单线程,也就是同一个时间只能做一件事。这也就意味着所有任务需要排队,这就导致如果js执行的时间过长,会造成页面渲染不连贯,导致页面渲染加载阻塞的感觉。



为了解决这个问题,利用多核cpu的计算能力,HTML5允许JavaScript脚本创建多个线程,所以JS中出现了同步异步

2. 同步

前一个任务结束后再执行下一个任务,程序的执行顺序与任务的排队顺序一致。

3. 异步

在做一件事的同时还可以去处理其他事情。

4. JS执行机制

JS为了防止任务有排队等待时间过长的问题,把所有的任务分为两类。

  • 同步任务:都在主线程上执行,形成一个执行栈

  • 异步任务:JS的异步是通过回调函数实现的,添加到任务队列(消息队列)中。

[JS执行机制]:先执行执行栈中的同步任务,异步任务(回调函数)放到任务队列中,一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,进行执行栈开始执行。

5. 事件循环Event Loop

由于主线程不断的重复获取任务,执行任务,再获取和执行任务,这种机制被称为事件循环

Event Loop


js执行队列
http://example.com/2023/06/05/js执行队列/
Author
John Doe
Posted on
June 5, 2023
Licensed under