js高级进程与线程

线程机制与事件机制

进程

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

线程

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

图解
请添加图片描述
一个进程里有多个线程才算多线程

相关知识

  1. 应用程序必须运行在某个进程的线程上
  2. 一个进程中至少有一个运行的线程:主线程,进程启动后自动创建
  3. 一个进程中也可以同时运行多个线程,我们会说程序是多线程运行的
  4. 一个进程内的数据可以供其中的多个线程直接共享
  5. 多个进程之间的数据是不能直接共享的
  6. 线程池:保存多个线程对象的容器,实现线程对象的反复利用

相关问题

  1. 何为多进程与多线程

    • 多进程运行:一应用程序可以同时启动多个实例运行
    • 多线程:在一个进程内,同时有多个线程运行
  2. 比较单线程与多线程

    • 多线程:
      • 优点
        • 能有效提升CPU的利用率
      • 缺点
        • 创建多线程开销
        • 线程间切换开销
        • 死锁与状态同步问题
    • 单线程:
      • 优点
        • 顺序与状态同步问题
        • 效率低
  3. JS是单线程还是多线程

    • js是单线程运行的
    • 但使用H5中的Web Workers可以多线程运行
  4. 浏览器运行时单线程还是多线程

    • 都是多线程进程的
  5. 浏览器是单进程还是多进程

    • 有的是单进程

      • firefox
      • 老版IE
    • 有的是多进程

      • chrome
      • 新版IE
  6. 如何查看浏览器是否是多进程运行的呢

    • 多打开几个浏览器窗口,打开任务管理查看浏览器数量
  7. 内核有很多模块组成

(以下是主线程)

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

(以下是分线程)

  • 定时器模块:负责定时器的管理
  • 事件响应模块:负责事件的管理
  • 网络请求模板:负责ajax请求
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值