浏览器中包含什么?三个常驻线程?

Posted ashen1999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器中包含什么?三个常驻线程?相关的知识,希望对你有一定的参考价值。

浏览器基础结构主要包含七个部分:

  • 用户界面:用户所看到的内容和与之交互的功能组件,比如按钮、表单等等
  • 浏览器引擎:负责控制和管理下一级的渲染引擎
  • 渲染引擎:解析用户请求的内容并返回
  • 网络:负责处理网关相关事宜,比如http服务
  • UI后端:负责绘制一些提示框等UI组件,底层使用的是操作系统的用户接口
  • js解析器:负责解析和执行js代码
  • 数据存储:负责存储数据如cookie等

浏览器是多线程的,js是单线程的,浏览器至少包含三个常驻线程:

js引擎线程:基于事件驱动单线程执行

GUI渲染线程:负责渲染浏览器界面。但是js引擎线程和GUI渲染线程是互斥的,当js引擎线程进行时,GUI渲染线程会暂停,直到js引擎线程结束才继续,这也就是js阻塞

事件触发线程:当事件被触发后,会把事件添加到任务队列的最尾端,等待js引擎处理执行

以上是关于浏览器中包含什么?三个常驻线程?的主要内容,如果未能解决你的问题,请参考以下文章

浏览器假死

我理解的JavaScript异步编程

优化js脚本设计,防止浏览器假死

JavaScript线程机制

为啥我们应该在字体中包含 ttf、eot、woff、svg、...

为啥我们应该在字体中包含 ttf、eot、woff、svg、...