zoukankan      html  css  js  c++  java
  • 浏览器的进程和线程

    1. 浏览器进程

    概念:进程是操作系统分配资源的最小单位,每个进程之间有独立的地址空间

    浏览器中存在以下进程:

    • 浏览器进程:负责页面显示、用户交互、子进程管理等功能
    • 渲染进程:将HTML、CSS、JS转化为可交互网页,默认每个Tab标签都有一个渲染进程
    • GPU进程,为了实现页面绘制和动画效果而开发的进程
    • 网络进程,负责页面网络资源加载
    • 插件进程,每个插件对应一个进程,防止崩溃影响浏览器使用

    2. 浏览器线程

    概念:线程是程序执行的最小单位,一个进程下的所有线程共享该进程的地址空间

    • GUI渲染线程

    负责渲染HTML元素,当界面需要重绘或者回流时就会执行,在JS引擎运行脚本期间GUI渲染线程会被挂起(如果同时进行,js可能会在渲染期间对DOM进行操作,造成许多不必要渲染或者冲突)

    • Javascript引擎线程

    主要负责处理JS脚本程序,运行代码,例如V8引擎

    为什么js是单线程的?
    若多个线程同时操作DOM将需要设置锁来解决问题,从而带来更大的复杂性

    • 定时触发器线程

    由于JS是单线程的,为了不阻塞后续代码执行,将定时计数任务交给定时触发器线程

    • 事件触发线程

    当一个事件被触发时该线程会将事件处理函数添加到队列尾部,等待JS引擎处理

    • 异步http请求线程

    创建XMLHttpRequest连接后新开的线程,检测到状态变更就会将回调事件放到任务队列尾部,等待JS引擎执行

  • 相关阅读:
    超级文件夹管理器
    基于IAP和网口升级固件
    经典排序之高速排序
    hdu 4908 BestCoder Sequence
    Boost.Asio c++ 网络编程翻译(11)
    Silverlight 5 Grid组的MouseLeave响应
    Linux下实现RAID
    关于相互排斥运行的设计与实现
    Codeforces 309C Memory for Arrays 二进制模拟进位
    sharepoint 2013 资源管理器copy大文件到本地失败解决方法
  • 原文地址:https://www.cnblogs.com/aeipyuan/p/13340909.html
Copyright © 2011-2022 走看看