浏览器与进程

2019-08-22  本文已影响0人  百分百空手接白刃_566c

线程与进程

CPU: CPU是计算机的核心,其负责承担计算机的计算任务
进程:进程是cpu资源分配的最小单位(系统会给它分配内存)
线程:线程是CPU调度的最小单位(线程是建立在进程基础上的一次程序运行单位,一个进程中有多个线程)

浏览器进程

浏览器是多进程的, 每打开一个tab页,就相当于创建了一个独立的进程.
浏览器最重要的是它的渲染进程, 也就是我们常说的浏览器内核,他是多线程的,主要线程有:

1.GUI渲染线程:

-负责渲染浏览器界面,解析HTML,CSS,构建DOM树和RenderObject树,布局和绘制等。

2.JS引擎线程(就是js内核)

js引擎线程负责解析Javascript脚本,运行代码。(例如v8引擎)

3.事件触发线程

当JS引擎执行代码块如setTimeOut时(也可来自浏览器内核的其他线程,如鼠标点击、AJAX异步请求等),会将对应任务添加到事件线程中

4.定时触发器线程

setInterval与setTimeout所在线程

5.异步http请求线程

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

注意:

GUI渲染线程JS引擎线程是互斥的,当JS引擎执行时GUI线程会被挂起(相当于被冻结了),GUI更新会被保存在一个队列中等到JS引擎空闲时立即被执行。所以当js脚本运行过长的时候会造成页面阻塞。这点与小程序不同,小程序的渲染线程和js引擎线程相互不影响。

上一篇下一篇

猜你喜欢

热点阅读