美文网首页
浏览器与进程

浏览器与进程

作者: 百分百空手接白刃_566c | 来源:发表于2019-08-22 14:32 被阅读0次

    线程与进程

    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引擎线程相互不影响。

    相关文章

      网友评论

          本文标题:浏览器与进程

          本文链接:https://www.haomeiwen.com/subject/lcuafqtx.html