node.js应用场景分析

来源:互联网 发布:c 面向对象编程实例 编辑:程序博客网 时间:2024/06/10 21:49

node.js是什么?

node.js is a javascript runtime built on Chrome’s V8
node.js 是一个运行时,并不是一个语言
node.js的两个特性:事件驱动、非阻塞I/O模型


非阻塞I/O

  • 阻塞I/O: I/O时,进程休眠,等待I/O完成后进行下一步;
    以读读取磁盘上的一段文件为例子,系统内核在完成磁盘寻找轨道、读取数据、复制数据到内存中之后,这个调用才结束;
  • 非阻塞I/O:阻塞I/O造成了CPU等待I/O,浪费了等待时间,CPU处理能力得不到充分利用,为了提高性能,内核提供了非阻塞I/O,非阻塞I/O最大的区别就是调用之后会立即返回;


Node.js场景

Node.js擅长于I/O密集型业务(文件操作、网络操作、数据库相关操作),不擅长于CPU密集型业务(压缩、解压、加密、解密);
Node.js在公司中,经常用来做以下业务:
- WebServer
- 本地代码构建
- 实用工具开发


web中常见的场景(web是I/O密集型)

  • 静态资源读取
  • 数据库操作
  • 渲染页面(读取模版文件、根据数据生成HTML页面)