—原知识内容来自B站用户objtube的卢克儿,想观看视频的可以通过以下连接进入
https://www.bilibili.com/video/BV1x54y1B7RE
-
浏览器进程
当我们启动某个程序时,就会创建一个进程执行任务代码,同时会为该进程创建应用空间,该应用程序的状态都保存在该内存中,一个进程会创建多个线程。如果某两个进程之间需要互相通信,就需要进程管道IPC来传递。很多应用程序都是多进程的结构,这样是为了某一个进程卡死。由于进程间相互独立,这样就可以避免一个进程卡死,整个应用崩溃的情况。
一个进程包含多个线程,同一个进程下的多个线程是可以共享数据的。
浏览器就是一个多进程结构。但早期浏览器是单进程结构,一个进程中大概有页面线程负责页面渲染和展示。JS线程执行JS代码,以及其他线程。单进程页面会出现很多问题。一、不稳定,二、不安全,三、不流畅。不稳定体现在,一个单进程结构如果有某个线程卡死,就会造成该浏览器崩溃,不安全体现在,因为是单进程结构,页面中数据互通,那么其他应用程序可能会访问到另一个应用程序的数据。不流畅,即一个单页面进程需要处理太多事情,在用户体验上就会出现不流畅的情况。
现在的浏览器大多数都是多进程结构。将浏览器拆分为多个进程大概会分为以下几个进程
浏览器进程负责除浏览器标签外后退,刷新,前进等功能。网络进程负责接收网络请求、GPU进程负责整个浏览器页面的渲染。插件进程负责控制网站使用的所有插件,例如flash等插件。 -
在浏览器输入地