浏览器渲染进程的线程有哪些

2023-11-05

浏览器的渲染进程的线程总共有五种:

在这里插入图片描述

(1)GUI渲染线程

负责渲染浏览器页面,解析HTML、CSS,构建DOM树、构建CSSOM树、构建渲染树和绘制页面;当界面需要重绘或由于某种操作引发回流时,该线程就会执行。
注意:GUI渲染线程和JS引擎线程是互斥的,当JS引擎执行时GUI线程会被挂起,GUI更新会被保存在一个队列中等到JS引擎空闲时立即被执行。

(2)JS引擎线程

JS引擎线程也称为JS内核,负责处理Javascript脚本程序,解析Javascript脚本,运行代码;JS引擎线程一直等待着任务队列中任务的到来,然后加以处理,一个Tab页中无论什么时候都只有一个JS引擎线程在运行JS程序;
注意:GUI渲染线程与JS引擎线程的互斥关系,所以如果JS执行的时间过长,会造成页面的渲染不连贯,导致页面渲染加载阻塞。

(3)事件触发线程

事件触发线程属于浏览器而不是JS引擎,用来控制事件循环;当JS引擎执行代码块如setTimeOut时(也可是来自浏览器内核的其他线程,如鼠标点击、AJAX异步请求等),会将对应任务添加到事件触发线程中;当对应的事件符合触发条件被触发时,该线程会把事件添加到待处理队列的队尾,等待JS引擎的处理;
注意:由于JS的单线程关系,所以这些待处理队列中的事件都得排队等待JS引擎处理(当JS引擎空闲时才会去执行);

(4)定时器触发线程

定时器触发线程即setInterval与setTimeout所在线程;浏览器定时计数器并不是由JS引擎计数的,因为JS引擎是单线程的,如果处于阻塞线程状态就会影响记计时的准确性;因此使用单独线程来计时并触发定时器,计时完毕后,添加到事件队列中,等待JS引擎空闲后执行,所以定时器中的任务在设定的时间点不一定能够准时执行,定时器只是在指定时间点将任务添加到事件队列中;
注意:W3C在HTML标准中规定,定时器的定时时间不能小于4ms,如果是小于4ms,则默认为4ms。

(5)异步http请求线程

● XMLHttpRequest连接后通过浏览器新开一个线程请求;
● 检测到状态变更时,如果设置有回调函数,异步线程就产生状态变更事件,将回调函数放入事件队列中,等待JS引擎空闲后执行;
原文章

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浏览器渲染进程的线程有哪些 的相关文章

随机推荐

  • 88. 合并两个有序数组 golang

    88 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2 请你将 nums2 合并到 nums1 中 使 nums1 成为一个有序数组 说明 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 你可以假设 nu
  • 驱动接口函数调用过程

    本文就来揭秘一下到底一个驱动的接口函数是如何被调用的 首先我们来反汇编读驱动的程序 跳转到 libc read 发现他把r7赋值给3 3是传过去的参数 然后调用svc指令 进入内核态相应的入口 接下来就已经进入内核态 入口函数中将存入r7中
  • Windows 10 更新后无法安装共享打印机(0x0000011b)

    windows 10 前段时间更新之后突然无法连接共享打印机 出现报错0x0000011b的错误 很多人都是用卸载补丁KB5005569 KB5005573 KB5005568 KB5005566 KB5005565 这确实能暂时解决问题
  • 原生微信小程序 计算属性 wxs

    原生微信小程序 计算属性 wxs WXS官方文档 WXS 不依赖于运行时的基础库版本 可以在所有版本的小程序中运行 WXS 与 JavaScript 是不同的语言 有自己的语法 并不和 JavaScript 一致 WXS 的运行环境和其他
  • gpio相关介绍

    GPIO 通用输入输出端口 gpio的基本输出功能由STM32控制引脚输出高 低电平 实现开关控制 最基本的输入功能是检测外部输入电平 gpio工作模式 输入模式 上拉 下拉 浮空 在输入模式中 施密特触发器打开 输出被禁止 数据寄存器每隔
  • HTML,CSS,Javascript在Web开发中分别起什么作用?

    简单描述HTML CSS Javascript在Web开发中分别起什么作用 1 什么是HTML 超文本标记语言 Hyper Text Markup Language HTML 是用来描述网页的一种语言 2 CSS 层叠样式表 Cascadi
  • VUE联动下拉选择框

  • Javascript中大括号“{}”的多义性

    JS中大括号有四种语义作用语义1 组织复合语句 这是最常见的 if condition else for 语义2 对象直接量声明 var obj name jack age 23 整个是个赋值语句 其中的 name jack age 23
  • 蓝桥杯 空间

    题目1 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 小蓝准备用 256MB 的内存空间开一个数组 数组的每个元素都是 32 位 二进制整数 如果不考虑程序占用的空间和维护内存需要的辅助空间 请问 256MB 的空
  • IDEA : IDEA好用的插件集锦

    1 Free Mybatis plugin mybatis 插件 让你的mybatis xml像java代码一样编辑 我们开发中使用mybatis时时长需要通过mapper接口查找对应的xml中的sql语句 该插件方便了我们的操作 安装完成
  • 代理IP和Socks5代理:跨界电商与爬虫的智能引擎

    跨界电商 作为全球市场的一部分 对数据的需求越来越大 同时 随着互联网的发展 爬虫技术也在不断演进 成为了跨界电商的关键工具之一 然而 随之而来的是网站的反爬虫机制和网络安全风险 在这种情况下 代理IP和Socks5代理应运而生 为企业提供
  • Java复习(第一季)

    Java的特性与版本 最好的跨平台开源编程语言 第二章 常量和变量 2 1 Java中的关键字 Java关键字是区分大小写的 viod是关键字 但Viod就不是 使用标识符时 需要遵守几条规则 1 标识符可以由字母 数字 下划线 美元符 组
  • Linux初体验—整理了一些Linux的常用命令

    目录 查看当前目录下的内容 文件目录操作命令 作用 用于切换当前工作目录 即进入指定目录 作用 用于显示文件内容 作用 以分页的形式显示文件内容 作用 查看文件末尾内容 作用 创建目录 作用 删除空目录 作用 删除指定文件或目录 作用 用于
  • RGB格式解释说明

    RGB 是一种加色模型 将红 Red 绿 Green 蓝 Blue 三原色的色光以不同的比例相加 以产生多种多样的色光 且三原色的红绿蓝不可能用其他单色光合成 浮点表示方式 取值范围为 0 0 1 0 整数表示 取值范围为 0 255 或者
  • MATLAB算法实战应用案例精讲-【深度学习】CNN池化

    目录 计算机视觉与卷积神经网络 计算机视觉综述 计算机视觉的发展历程 卷积神经网络
  • 狂神ES入门

    视频链接 https www bilibili com video BV17a4y1x7zq 文章目录 一 Elasticsearch与Solr对比 二 环境安装 2 1 Elasticsearch 7 12 1安装 2 2 elastic
  • 7)存储过程

    文章目录 一 存储过程概念 1 存储过程的优点 2 存储过程的类型 二 创建和使用存储过程 1 创建存储过程 2 使用存储过程 3 修改存储过程 4 删除存储过程 一 存储过程概念 就是一条或者多条T SQL 语句的集合 可视为数据库的批处
  • 带注释 实验8-2-3 删除字符 (20分)

    实验8 2 3 删除字符 20分 本题要求实现一个删除字符串中的指定字符的简单函数 函数接口定义 void delchar char str char c 其中char str是传入的字符串 c是待删除的字符 函数delchar的功能是将字
  • Datawhale宣传团队名单公示!

    Datawhale团队 公示 Datawhale宣传团队名单 感谢今年八月所有参与 AI夏令营 的宣传大使 是你们 让更多的同学了解到了开源学习 也让更多人看到了Datawhale 星星之火 可以燎原 社区的发展离不开每一位贡献者 让我们从
  • 浏览器渲染进程的线程有哪些

    浏览器的渲染进程的线程总共有五种 1 GUI渲染线程 负责渲染浏览器页面 解析HTML CSS 构建DOM树 构建CSSOM树 构建渲染树和绘制页面 当界面需要重绘或由于某种操作引发回流时 该线程就会执行 注意 GUI渲染线程和JS引擎线程