js执行队列
JS执行队列
1. JS是单线程
JavaScript语言的一大特点就是单线程,也就是同一个时间只能做一件事。这也就意味着所有任务需要排队,这就导致如果js执行的时间过长,会造成页面渲染不连贯,导致页面渲染加载阻塞的感觉。
为了解决这个问题,利用多核cpu的计算能力,HTML5允许JavaScript脚本创建多个线程,所以JS中出现了同步和异步。
2. 同步
前一个任务结束后再执行下一个任务,程序的执行顺序与任务的排队顺序一致。
3. 异步
在做一件事的同时还可以去处理其他事情。
4. JS执行机制
JS为了防止任务有排队等待时间过长的问题,把所有的任务分为两类。
同步任务:都在主线程上执行,形成一个执行栈。
异步任务:JS的异步是通过回调函数实现的,添加到任务队列(消息队列)中。
[JS执行机制]:先执行执行栈中的同步任务,异步任务(回调函数)放到任务队列中,一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,进行执行栈开始执行。
5. 事件循环Event Loop
由于主线程不断的重复获取任务,执行任务,再获取和执行任务,这种机制被称为事件循环
js执行队列
http://example.com/2023/06/05/js执行队列/