首先我们有必要说下浏览器,只有吧浏览器讲了,这才是一个从头到尾完整的流程说明。 关于进程、线程的概念不做表述,当一个应用程序启动的时候,可以理解为操作系统启动了一个进程,进程启动之后,CPU回给你进程分配对应的内存空间,当进程获取内存之后,就可以使用线程进行资源调度。
在应用程序当中,为了满足需要,启动的进程会创建另外的进程来处理其他任务,而创建出来的进程拥有全新的独立内存空间,如果要进行内存间的通信,将使用IPC机制
谷歌浏览器从08年开始支持多线程,以下是08年发布的模型,是一个多进程的,主要的进程有:渲染进程、浏览器进程、GPU、插件进程、sharedWorker进程,现如今,除了以上的分类,目前还有Network\Storage\Audio等
● 浏览器进程。主要负责界面显示、用户交互、子进程管理,同时提供存储等功能。
● 渲染进程。核心任务是将 HTML、CSS 和 JavaScript 转换为用户可以与之交互的网页,每秒刷新界面,运行JS代码等。排版引擎Blink和JavaScript引擎V8都是运行在该进程中,默认情况下,Chrome会为每个Tab标签创建一个渲染进程。出于安全考虑,渲染进程都是运行在沙箱模式下。
容错性更高
更高的安全性和沙盒性
更高的响应速度,避免单进程架构中任务抢夺CPU
PS: site-instance: connected pages from the same site同一个界面连接的界面包括 window.open
后台线程中运行脚本的方式,不干扰用户界面
作为web应用程序、浏览器和网络之前的代理服务器,可以进行推送,同步。常驻浏览器,本质是后台线程