请教老师关于 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++ 的。
00
相似问题