浏览器进程, 线程区别?

  • 进程是CPU分配资源的最小单位(是能拥有资源和独立运行的最小单位)
  • 线程是CPU调度的最小单位(线程是建立在进程的基础上的一次程序运行单位, 一个进程中可以有多个线程)

浏览器是多进程的

浏览器是多进程的, 可以简单的理解为, 每打开一个标签页, 就相当于创建了一个独立的浏览器进程.

浏览器包含哪些主要进程

  • Browser进程, 主进程, 负责协调和主控, 只有唯一的一个, 负责资源管理, 下载, 页面管理, 创建, 销毁, 用户交互等
  • 第三方插件进程, 每种类型的插件对应一个进程
  • GPU进程, 最多一个, 用于3D绘制等
  • Renderer进程, 渲染进程, 负责页面渲染, 脚本执行, 事件处理等

Renderer进程包含哪些主要线程

通常前端领域所说的内容, 都发生于渲染进程内. 渲染进程包括了如下主要的常驻线程:

  • GUI渲染线程, 负责解析HTML, CSS, 构建DOM树和RenderObject树, 与JS引擎线程互斥
  • JS引擎线程, 负责处理JavaScript脚本程序
  • 事件触发线程, 控制事件循环, 当对应的事件触发时, 将事件处理函数添加到队列
  • 计时线程, 负责计时, 并将回调函数添加到队列
  • 网络线程, 负责进行http请求, 并将状态变更事件添加到队列
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。