进程、线程、浏览器内核

一、什么是进程

   进程是操作系统分配资源的最小单位,是能拥有资源,独立运行的最小单元,每个进程有自己的内存空间。

二、什么是线程

   线程是CPU调度的最小单位,线程是建立在进程基础上的一次程序运行单位,一个进程可以包含多个线程。

  一个程序至少有一个进程,一个进程至少有一个线程,多个线程之间可共享数据。

三、浏览器是多进程的

   每打开一个标签页面,就打开了一个进程,相同类型的标签页会合并到一个进程,这个进程又包括:

    1、主进程:负责标签页的创建与销毁,页面的后退、前进和历史记录、负责页面的资源管理

    2、第三方插件进程:主要负责第三方插件的使用

    3、GPU进程:主要负责3D绘制和硬件加速

    4、浏览器渲染进程:负责CSS、HTML、JS代码的解析和执行

  浏览器渲染进程又包括以下几个线程,主要有:

     1、GUI渲染线程

     2、JS引擎线程

     3、事件触发线程

     4、定时器触发线程

     5、异步HTTP请求线程

  其中JS引擎线程与GUI渲染线程互斥,当JS引擎线程空闲时,会执行GUI渲染线程。

四、浏览器内核

    浏览器内核指的是浏览器渲染进程。

    浏览器引擎主要包括HTML解释器、CSS解释器、图片、布局、网络等零部件。浏览器渲染进程程其实就是不同功能模块的相互协调工作,主要是html解释器、css解释器、图层布局计算模块、图层绘制模块和JS引擎渲染模块。

   V8引擎非常复杂,由许多子模块组成,最重要的4个模块:

  1、Parser: 负责将JS代码转化为Abstract Syntax Tree(AST)

  2、Ignition: 解释器,负责将JS代码转化为Bytecode,解释执行Bytecode,并且负责第三步需要的          信息

  3、TurboFan: 编译器,根据第二步收集到的信息,将Bytecode转化为优化的汇编代码

  4、Orinoco: 垃圾回收模块,负责将不再使用的内存空间回收

JS单线程:JS引擎在执行JS代码时,只分配一个线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值