美文网首页
浏览器线程

浏览器线程

作者: panergongzi | 来源:发表于2020-10-08 15:09 被阅读0次

    进程和线程的区别

    进程有独立的内存空间,进程之间相互独立,不同进程间可以通过IPC协议进行通信

    进程由一个或者多个线程组成,线程是进程的基本单位

    同一进程的多个线程可以相互通信,状态共享

    进程是CPU资源分配的最新单位,线程是CPU调度的最小单位

    浏览器进程和线程

    常见的浏览器进程

    1,浏览器主进程

    负责浏览器界面显示,与用户交互,如前进,后退等

    负责各个页面的管理,创建,和销毁其他进程

    将Renderer进程得到的内存中的Bitmap,绘制到用户界面上

    网络资源的管理,下载等

    2,GPU进程

    用于3D绘制等

    3,第三方插件进程

    每种类型对应一个进程,仅当使用该插件时才创建

    4,浏览器渲染进程

    也叫浏览器内核,主要作用:页面渲染,脚本执行,事件处理等。

    renderer进程主要包含的线程

    (1)GUI渲染线程

    负责渲染浏览器界面,如解析hrml,css,构件DOM树和RenderObject树,布局和绘制等

    当界面需要重绘或者某种操作引发回流时,改线程执行

    注意:GUI线程与JS引擎线程是互斥的,当JS引擎执行时GUI线程会被挂起,GUI更新会保存在一个队列种等到JS引擎空闲时被立即执行。

    (2)JS引擎线程

    处理javascript脚本程序,解析javascript脚本,运行代码

    (3)事件触发线程

    该线程归属浏览器,控制事件循环,比如执行鼠标点击,AJAX异步请求等时会将对应任务添加到事件触发线程中

    当对应的事件符合触发条件被触发时,该线程会把事件添加到待处理队列的队尾,等待JS引擎的处理

    (4)定时器触发线程

    即setInterval与setTimeout所在线程

    使用单独线程来计时并触发定时器,计时完毕后,添加到事件队列中,等待JS引擎执行。

    (5)异步http请求线程

    XMLHttpRequest连接后通过浏览器开一个线程请求

    检测到状态变更时,如果设置有回调函数,异步线程就产生状态变更事件,将回调函数放入事件队列中,等待JS引擎空闲后执行

    浏览器的线程和进程 - 简书转自

    相关文章

      网友评论

          本文标题:浏览器线程

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