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

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的切换速度非常快所以看起是一起执行,本质不是同时切记!。

。。。待续

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部