美文网首页
JS单线程、任务队列

JS单线程、任务队列

作者: XuZiYa | 来源:发表于2018-10-08 19:34 被阅读0次

JavaScript只在一个线程上运行。也就是说,JavaScript同时只能执行一个任务,其他任务都必须在后面排队等待。但这并不意味着JS只有一个线程,事实上,JavaScript引擎有多个线程,单个脚本只能在一个线程上运行,其他线程都是在后台配合。所谓单线程,是指在JS引擎中负责解释和执行JavaScript代码的线程只有一个。
首先,主线程会执行同步任务,当主线程遇到异步任务,指给对应的模块进行处理(WEB API),当达到指定的触发条件,相应的回掉函数被放入任务队列;等到同步任务全部执行完,就会去看任务队列里面的异步任务。如果满足条件,那么异步任务就重新进入主线程开始执行,这时它就变成同步任务了。等到执行完,下一个异步任务再进入主线程开始执行。一旦任务队列清空,程序就结束执行。

image.png

相关文章

  • 运行机制,宏任务 与 微任务

    运行机制: JS 的本质是单线程执行 事件队列:同步任务,异步任务() 运行机制 1,JS 的本质是单线程执行 单...

  • Dart线程模型及异常捕获

    单线程 以类似JS的,单线程中是以消息循环机制来运行的。包含一个微任务队列 ,和一个事件队列。微任务队列的执行优先...

  • 微任务和宏任务

    JS是单线程的,可以把这个线程叫做主线程,主线程中包含宏任务队列和微任务队列,宏任务所在的队列就叫宏任务队列,微任...

  • 面试系列 - EventLoop

    JS是单线程语言:顺序执行 任务队列宏任务(macro-task):整体代码 setTimeout setInt...

  • js 运行机制

    Js 是单线程吗?怎么理解单线程? 解:Js是单线程,单线程就是指在一个时间内只能做一件事情。 Js的任务队列是怎...

  • JS单线程、任务队列

    JavaScript只在一个线程上运行。也就是说,JavaScript同时只能执行一个任务,其他任务都必须在后面排...

  • 前端作业

    一、js异步编程的理解,EventLoop、消息队列是做什么的?什么是宏任务、微任务。js是单线程执行,效率低,异...

  • 面试总结

    1、js运行机制 JS单线程运行概念:js在同一时间只能做一件事 任务队列概念: 任务顺序:同步任务-->异步...

  • js运行机制

    如何理解js的单线程 一个时间之内js只能干一件事 什么是任务队列和Event Loop 同步任务,异步任务异步任...

  • setTimeout异步

    简单解释单线程、任务队列的概念 单线程:JavaScript是一个单线程语言,浏览器只会分配一个js引擎线程来解析...

网友评论

      本文标题:JS单线程、任务队列

      本文链接:https://www.haomeiwen.com/subject/aayraftx.html