电脑配置|硬件知识|电脑故障|电脑技巧|电脑应用|组装电脑

01 chrome 的架构-为什么打开一个浏览器会有多个进程?

无论您是想设计一个高性能的web应用,还是想开发一个web应用,您都需要对浏览器的核心有一些了解, 比如说 网络、页面的渲染、js的执行、以及web的安全,然而这些内容被散列在不同的浏览器模块里面。

因此我们需要深入的去学习浏览器的整体架构。

在本专栏中,我所有的分析都是基于 Chrome 浏览器的

我们先来看打开一个新的页面,浏览器默认起了多少个进程。

我们通过截图可以看到,启动了四个进程 分别是 网络进程 GPU进程 渲染进程 浏览器 本身的kernel 主进程 我会在后面详细讲解这几个进程目前了解。

在这里先不着急了解进程的作用 我想解释一下什么是进程、线程、以及协程序。

进程: 进程可以理解是一个操作系统启动的实例,这个实例有独立的系统分配的资源,进程和进程不同直接访问,天然的内存隔离保证了数据的安全可靠,如果需要通信可以通过IPC来进行通信。

线程: 线程是不能独立存在于系统中的。他是寄生在进程中的。在同一个进程中可以共享操作系统分配给进程的资源。

单线程和多线程上个图解释下

从图中可以看到,线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率。

当程序关闭操作系统操作系统将回收资源。 当一个进程退出时,操作系统会回收该进程所申请的所有资源;即使其中任意线程因为操作不当导致内存泄漏,当进程退出时,这些内存也会被正确回收。

协程: 从概念上理解,协程是一个轻量级的线程,但是它的切换远比线程消耗资源少的多。 众所周知切换线程是需要操作系统切换上下文的,然后切换协程只需要程序。

并行: 并行是同一时刻同时进行着多个任务的执行,一定区分并发。 举个例子吧 假设cpu也有4个core 要并行的执行下面的任务 A = 2+3;B = 20/4;C = 78; 在编写代码的时候,我们可以把这个过程拆分为四个任务:分别送4个cpu核心 每个核心执行一个任务 cpu1: A = 2+3; cpu2: B = 20/4; cpu3: C = 78; cpu4: 处理 A B C 三者的结果。

并发: 并发是什么鬼?解释一下,如果只有一个cpu的core我开了4个线程,这个时候,这四个任务表面也是在一起执行但是这个时候,这四个线程是在抢占cpu的执行权,因为cpu的切换速度非常快所以看起是一起执行,本质不是同时切记!。

。。。待续