高级JS线程与进程七

  • 进程与线程:

    • 应用程序必须运行在某个进程的某一个线程上;
    • 一个进程中至少有一个运行的线程:主线程,进程启动后自动创建;
    • 一个进程中可以同时运行多个进程,我们会说程序时多线程运行的;
    • 一个进程内的数据可以供其中的多个线程直接共享;
    • 多个线程之间的数据是不能直接共享的;
    • 线程池:保存多个线程对象的容器,实现线程对象的反复利用;
    • 单线程(顺序编程简单易懂;缺:效率低)和多线程(有效提升CPU的利用率,缺:创建多线程开销、线程间切换开销、死锁与状态同步问题)区别:
    • js单线程运行(alert会暂停当前主线程执行,同时会暂停定时器的执行,点击确定后,回复程序执行和计时);H5中web workers 可以多线程运行;浏览器是多线程、有单进程、多进程;
    • 回调函数是异步代码:在初始化代码执行完成之后才会执行;
  • 浏览器内核:

    • 支撑浏览器运行的主核心的程序;
    • js引擎模块:负责js程序的编译与运行;(主线程)
    • html、css文档解析模块:负责页面文本的解析;(主线程)
    • DOM/CSS模块:负责dom、css在内存中的相关处理;(主线程)
    • 布局个渲染模块:负责页面的布局和效果的绘制;(主线程)
    • 定时器模块:负责定时器管理;(分线程)
    • dom事件响应模块:负责事件的管理;(分线程)
    • 网络请求模块:负责AJAX请求;(分线程)
  • H5 web workers(多线程):

    • 可以将一些大量计算的代码交由web worker运行而不冻结用户界面;
    • 但是子线程完全受主线程控制,且不得操作DOM,所以,这个新标准并没有改变JavaScript单线程的本质;
    • 缺点:worker内代码不能访问DOM;不能跨域加载js;不是每个浏览器都支持这个新特性;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值