石臼墙话板

浏览器内核多进程机制

2019-12-01  本文已影响0人  李祥祥_19强化班

1.浏览器内核常驻线程

浏览器 GUI 渲染线程

JavaScript 引擎线程

浏览器定时触发器线程

浏览器事件触发线程

浏览器 http 异步请求线程

(1)GUI渲染线程

GUI渲染线程负责渲染浏览器界面的HTML元素, 当界面需要重绘(repaint)或者由于某种操作引发回流(reflow)时,该线程就会执行。在Javascript引擎运行脚本期间,GUI渲染线程都是处于挂起状态的。

(2)Javascript引擎线程

Javascript引擎,也可以称为JS内核,主要负责处理Javascript脚本程序,例如V8引擎。Javascript引擎线程理所当然是负责解析Javascript脚本,运行代码。

ps:web worker只是允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。

(3)浏览器事件触发线程

接受浏览器里面的操作事件响应。如在监听到鼠标、键盘等事件的时候, 如果有事件句柄函数,就讲对应的任务压入队列。

(5)浏览器 http 异步请求线程

在XMLHttpRequest在连接后是通过浏览器新开一个线程请求, 将检测到状态变更时,如果设置有回调函数,异步线程就产生状态变更事件放到 JavaScript引擎的处理队列中等待处理。

上一篇下一篇

猜你喜欢

热点阅读