请教老师关于 event loop 的问题

来源:9-4 DOM节点操作

Osuribaba

2020-12-25

请问下老师, event loop 的代码运行在哪里呢?
我理解渲染进程里头有好多线程,比如 解析 js 的线程,处理 IO 的线程,处理定时器的线程,用 GPU 渲染页面的线程等,我觉得是否应该还有条线程用来运行 event loop 的代码,然后这条线程会不停地循环 js 解析线程的栈区,发现一旦 js 解析线程中的栈是空了就说明同步代码执行完,这个时候这条跑 eventloop 的线程就会去事件队列里头拿出“从别的线程发送过来的回调任务”出来执行?我不知道我这个理解是否是对的,所以请教老师一下。

写回答

1回答

双越

2020-12-26

首先,event loop 只是一个异步原理的称呼,它不是一段代码,或者一个函数,它是一个解决方案和实现方式的叫法。它的代码,一部分运行在 v8 js 引擎,一部分运行在浏览器内核。

如果你想要了解其中的执行原理,可以尝试去搜一下 libuv 的源码解读,不过是 C++ 的。

0
0

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

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

4709 学习 · 1682 问题

查看课程