请问老师关于 v8 以及 环境 api 的问题

来源:9-4 DOM节点操作

Osuribaba

2020-12-25

我理解 v8 是 js 的解释器,相当于说给 v8 输入一串符合 js 语法的字符串,然后它就能进行解释。对于输入的那串字符串可能后边会生成语法树或者中间代码之类的,如果在语法树或者中间代码中碰到类似 setTimetout,XHLHttpRequest dom 事件等不属于 v8 原生支持的方法,就把这些东西抛给对应的 定时器线程,IO线程 等。
所以我想问下,对于 setTimeout 或者 nodejs 中的 nextTick 之类的这种不属于 v8 原生的东西,v8 是怎么知道要把对应的方法抛给对应的线程呢?或者说,浏览器这个环境或者 nodejs 这个环境,是怎么样让 v8 感知到 某个 Api 是我这个执行环境或者说宿主注入给你 v8 的,是 v8 引擎提供了什么用于拓展的接口么?

写回答

1回答

双越

2020-12-26

首先,不是线程,是进程。setTimeout 的处理既然不是 v8 的内容,那就不属于 v8 的进程范围,所以是另外的进程。

至于 v8 如何给其他进程通知,这就属于进程之间的通讯了,这才《操作系统》的一部分知识点。内容很多,而且很复杂,我们也不便于就在这里展开讲解。

你可以先去搜一下进程间通讯的基础知识。

0
0

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程