zoukankan      html  css  js  c++  java
  • 线程与进程、浏览器内核模块组成

    进程:

    程序的一次执行, 它占有一片独有的内存空间
    可以通过windows任务管理器查看进程

    2). 线程:

    是进程内的一个独立执行单元
    是程序执行的一个完整流程
    是CPU的最小的调度单元

    3). 关系

    一个进程至少有一个线程(主)
    程序是在某个进程中的某个线程执行的

    2. 浏览器内核模块组成

    1). 主线程

    js引擎模块 : 负责js程序的编译与运行
    html,css文档解析模块 : 负责页面文本的解析
    DOM/CSS模块 : 负责dom/css在内存中的相关处理
    布局和渲染模块 : 负责页面的布局和效果的绘制(内存中的对象)

    2). 分线程

    定时器模块 : 负责定时器的管理
    事件响应模块 : 负责事件的管理
    网络请求模块 : 负责Ajax请求

    3). js线程

    js是单线程执行的(回调函数也是在主线程)
    H5提出了实现多线程的方案: Web Workers   --->Worker
    只能是主线程更新界面

    3. 定时器问题:

    定时器并不真正完全定时
    如果在主线程执行了一个长时间的操作, 可能导致延时才处理

    4. 事件处理机制

    1). 代码分类

    初始化执行代码: 包含绑定dom事件监听, 设置定时器, 发送ajax请求的代码
    回调执行代码: 处理回调逻辑

    2). js引擎执行代码的基本流程:

    初始化代码===>回调代码

    3). 模型的2个重要组成部分:

    事件管理模块
    回调队列

    4). 模型的运转流程

    执行初始化代码, 将事件回调函数交给对应模块管理
    当事件发生时, 管理模块会将回调函数及其数据添加到回调列队中
    只有当初始化代码执行完后(可能要一定时间), 才会遍历读取回调队列中的回调函数执行

  • 相关阅读:
    系统调用简单总结
    系统调用原理详解
    总结:c 语言与Linux操作系统的关系
    poj3171 Cleaning Shifts
    洛谷P1032 字串变换
    poj3662 Telephone Lines
    洛谷P1073 最优贸易
    Uva1330/poj1964 City Game
    poj2559/SP1805 Largest Rectangle in a Histogram
    洛谷 P1196 [NOI2002]银河英雄传说
  • 原文地址:https://www.cnblogs.com/baixiaoxiao/p/15294544.html
Copyright © 2011-2022 走看看