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

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

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/ashen1999/p/12740033.html