zoukankan      html  css  js  c++  java
  • js单线程理解

    一.进程和线程

    1.进程: 是CPU资源分配的最小单位(是能拥有资源和独立运行的最小单位)。

    2.线程: 是CPU调度的最小单位(线程是建立再进程的基础上的一次程序运行单位,一个进程可以有多个线程

    3.单线程和多线程: 都是指再一个进程内的单和多

    二.浏览器是多进程的,每个窗口都是一个进程,可以打开任务管理器查看到多个进程任务

    三.浏览器包含哪些进程

    1.主进程

    •  协调控制其他子进程(创建,销毁)
    • 浏览器页面显示,用户交互,前进,后退,收藏
    • 将渲染进程得到的内存中的Bitmap,绘制到用户界面上
    • 处理不可见操作,网络请求,文件访问等

    2.第三方插件进程

    • 每种类型的插件对应一个进程,仅当使用改插件的时候才创建

    3.GPU进程

    • 勇于3D绘制等

    4.渲染进程,就是我们说的浏览器内核

    • 负责页面渲染,脚本执行,事件处理等
    • 每一个tab页一个渲染进程

    四.浏览器内核(渲染进程)

    1.GUI渲染进程

    • 负责渲染页面,布局和绘制
    • 页面需要重绘和回流时,改现成就会执行
    • 与js引擎线互斥,防止渲染结果不可预期

    2.JS引擎线程

    • 负责处理解析和执行javascript脚本程序
    • 只有一个JS引擎线程(单线程)
    • 与GUI渲染线程互斥,防止渲染结果不可预期

    3.事件触发线程

    • 用来控制时间循环(鼠标点击、setTimeout、ajax等)
    • 当时间满足出发条件时,将事件放入到JS引擎所在的执行队列中

    4.定时触发器线程

    • setInterval与seTimeout所在的线程
    • 定时任务并不是由JS引擎计时的,是由定时触发线程计时的
    • 计时完毕后,通知事件触发线程

    5.异步http请求线程

    • 浏览器有一个单独的线程用于处理AJAX请求
    • 当请求完成时,若有回调函数,通知事件触发线程
  • 相关阅读:
    element ui 表单清空
    element ui 覆盖样式 方法
    element ui 修改表单值 提交无效
    element ui 抽屉里的表单输入框无法修改值
    element ui 抽屉首次显示 闪烁
    css 左侧高度 跟随右侧内容高度 自适应
    PICNUF框架
    elementui 抽屉组件标题 出现黑色边框
    vue 子组件跨多层调用父组件中方法
    vue 编辑table 数据 未点击提交,table里的数据就发生了改变(深拷贝处理)
  • 原文地址:https://www.cnblogs.com/wuxu-dl/p/14903422.html
Copyright © 2011-2022 走看看