浏览器内核多进程机制
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引擎的处理队列中等待处理。