目录
  1. 1. 线程与进程
    1. 1.1. 图解
    2. 1.2. 浏览器运行是单进程还是多进程?
    3. 1.3. 有的是单进程
    4. 1.4. 有的是多进程
    5. 1.5. 如何查看浏览器是否是多进程运行的呢?
    6. 1.6. 浏览器运行是单线程还是多线程?
  2. 2. 浏览器内核模块组成
    1. 2.1. 什么是浏览器内核?
    2. 2.2. 浏览器内核
JS线程与进程

线程与进程

  • 进程:
    • 程序的一次执行, 它占有一片独有的内存空间
    • 可以通过windows任务管理器查看进程
  • 线程:
    • 是进程内的一个独立执行单元
    • 是程序执行的一个完整流程
    • 是CPU的最小的调度单元
  • 关系
    • 一个进程至少有一个线程(主)
    • 一个进程中也可以同时运行多个线程, 我们会说程序是多线程运行的
    • 一个进程内的数据可以供其中的多个线程直接共享
    • 多个进程之间的数据是不能直接共享的
    • 程序是在某个进程中的某个线程执行的

图解

浏览器运行是单进程还是多进程?

有的是单进程

  • firefox
  • 老版IE

有的是多进程

  • chrome
  • 新版IE

如何查看浏览器是否是多进程运行的呢?

任务管理器==>进程

浏览器运行是单线程还是多线程?

都是多线程运行的

浏览器内核模块组成

什么是浏览器内核?

支持浏览器运行的最核心的程序

浏览器内核

Chrome, Safari: webkit

firefox: Gecko

IE: Trident

360,搜狗等国内浏览器: Trident + webkit

  • 主线程
    • js引擎模块 : 负责js程序的编译与运行
    • html,css文档解析模块 : 负责页面文本的解析
    • DOM/CSS模块 : 负责dom/css在内存中的相关处理
    • 布局和渲染模块 : 负责页面的布局和效果的绘制(内存中的对象)
  • 分线程
    • 定时器模块 : 负责定时器的管理
    • DOM事件模块 : 负责事件的管理
    • 网络请求模块 : 负责Ajax请求
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-04/14/%E5%AD%A6%E4%B9%A0/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/JS/JS%E7%BA%BF%E7%A8%8B%E4%B8%8E%E8%BF%9B%E7%A8%8B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论