灵犀工坊 灵犀工坊
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • 《TypeScript》笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub

Jerry blog

上善若水, 为学日益。
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • 《TypeScript》笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub
  • 时光机
灵犀
2021-11-05

面试总结

# 面试总结

Node:

  • 单线程的弱点:

    1. 无法利用多核CPU
    2. 错误会引起整个应用退出,应用的健壮性值得考验
    3. 大量计算占用CPU导致无法继续调用异步I/O 浏览器中JavaScript与UI公用一个线程一样,js长时间执行会导致UI的渲染和响应被中断。 H5制定了Web Workers,能够创建工作线程来进行计算,以解决JavaScript大计算阻塞UI的渲染问题。 node 采用了与Web workers相同的思路来解决单线程中大量的计算的问题。 child_process. libuv: 在操作系统与Node上层模块系统之间构建了一层平层架构。可以兼容windows 各个平台。
  • 事件循环、观察者、请求对象、I/O线程池这四者共同构成了Node异步I/O模型的基本要素。

  • 多线程编程经常面临锁、状态同步等问题,这是多线程被诟病的主要原因。但是多线程在多核cpu上能够有效提升CPU的利用率,这个优势是毋庸置疑的。

  • node 平台间的适配是通过 libuv 实现的。

  • 在node中,除了javascript是单线程外,Node本身是多线程的,只是I/O 线程使用的CPU较少。

  • 事件循环是一个典型的生产者/消费者模型。异步I/O、网络请求等则是事件的生产者,源源不断的为Node 提供不同类型的事件,这些事件被传递到对应的观察者哪里,事件循环从观察者那里取出事件并处理。

编辑
上次更新: 2022/01/24, 08:49:31
最近更新
01
MongoDB
02-07
02
TypeScrpt学习
02-07
03
前端部署
11-18
更多文章>
Theme by Vdoing | Copyright © 2015-2023 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×