浏览器渲染机制
线程和进程 进程和线程的概念可以这样理解: 进程是一个工厂,工厂有它的独立资源--工厂之间相互独立--线程是工厂中的工人,多个工人协作完成任务--工厂内有一个或多个工人--工人之间共享空间 工厂有多个工人,就相当于一个进程可以有多个线程,而且线程共享进程的空间。 进程是 cpu 资源分配的最小单位(是能拥有资源和独立运行的最小单位,系统会给它分配内存) 线程是 cpu 调试的最小单位(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程。核心还是属于一个进程。) 浏览器是多进程的 浏览器是多进程的,每打开一个 tab 页,就相当于创建了一个独立的浏览器进程。 浏览器包含的进程: Browser 进程:浏览器的主进程(负责协调,主控),只有一个,作用有: 负责浏览器的界面显示,与用户交互,如前进,后退等 负责各个页面的管理,创建和销毁其它进程 将 Rendered 进程得到的内存中的 Bitmap ,绘制到用户界面上 网络资源的管理,下载 第三方插件进程:每种类型的插件对应一个进程,仅当使用该插件时才创建。 GPU 进程:最多一个,用于 3D 绘制等。 浏览器渲染进程(浏览器内核)( Render 进程,内部是多线程的):默认每个 Tab 页面一个进程,互不影响。主要作用为: 页面渲染,脚本执行,事件处理等 在浏览器中打开一个网页相当于新起了一个进程