五六论坛

标题: 新盛公司游戏链接【xs10159.com】 [打印本页]

作者: zxsder20120    时间: 昨天 14:16
标题: 新盛公司游戏链接【xs10159.com】
真正让这一切运转起来的,是包裹在 JS 引擎外层的宿主环境(Host Environment)。在浏览器里,这个宿主是 Blink 渲染引擎和底层的多线程架构,在 Node.js 里,则是异步事件驱动库 libuv。
事件循环,就是宿主环境派驻在 JS 引擎身边的一个“总调度师”。
浏览器作为宿主环境,在 JS 引擎之外维护着多个独立的线程:定时器线程、网络 I/O 线程、UI 渲染线程等等。当外面的底层线程把活儿干完了,总调度师就会把对应的 JS 回调代码塞进他手里的“任务队列”。
总调度师的工作极其机械死板,它持续监控着 JS 引擎的调用栈。只要 JS 引擎一跑完眼前的代码,把调用栈空出来,总调度师就会立刻走过去,翻开任务队列,抽出下一个排在首位的任务,塞到 JS 引擎的执行栈里:“歇够了没?该处理这段逻辑了,马上执行”
注意,这里说的 任务队列 并不是一个单一的队列,而是包含了不同优先级的多个队列,其中最重要的就是我们后面还会详细讲解的宏任务队列微任务队列,关于任务队列,在第一部分开头也有讲过。
task queue / microtask queue 这里为了方便理解,暂时沿用‘宏任务’和‘微任务’这两个常见说法。


作者: Cici    时间: 昨天 14:41
我也来顶一下。
作者: dabofeng    时间: 昨天 16:14
我也来顶一下。
作者: 赛车手    时间: 昨天 16:51
我也来顶一下。
作者: 七夜魔君    时间: 昨天 17:59
支持一下!
作者: 超越改    时间: 昨天 18:05
我也来顶一下。
作者: ijehauwaxei    时间: 昨天 20:14
我也来顶一下。
作者: hua668    时间: 昨天 20:27
顶起顶起顶起!
作者: 招鹏    时间: 昨天 21:16
我也来顶一下。
作者: caio    时间: 昨天 23:44
我也来顶一下。
作者: 实话实说    时间: 2 小时前
我也来顶一下。
作者: 草本刚    时间: 1 小时前
我也来顶一下。
作者: newman    时间: 半小时前
我也来顶一下。




欢迎光临 五六论坛 (https://www.gm56.com/) Powered by Discuz! X3.5