初识NodeJS

作者: JTR354 | 来源:发表于2017-12-31 22:32 被阅读0次

定义

  • NodeJS is a JavaScript runtime built on Chrome's V8
  • NodeJS uses an event-driven,non-blocking I/O modle[事件驱动,非阻塞IO模型]

非阻塞I/O

  • 阻塞:I/O时进程休眠等待I/O完成后进行下一步
  • 非阻塞:I/O时函数立即返回,进程不等待I/O完成

事件驱动

  • I/O等异步操作结束后的通知
  • 观察者模式

为什么偏爱NodeJS

  • 前端职责范围变大,同一开发体验
  • 在处理高并发、I/O密集场景性能优势明显

CPU密集 vs I/O密集

  • CPU 密集:压缩、解压、加密、解密
  • I/O密集:文件操作、网络操作、数据库

web常见场景

  • 静态资源读取
  • 数据库操作
  • 渲染页面

高并发应对之道

  • 增加机器数
  • 增加每台机器的CPU数 (多核)

进程(一个运行的程序)

  • 进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位
  • 多进程:启动多个进程,多个进程可以一块执行多个任务

线程(组成进程的基本单位)

  • 线程:进程内一个相对独立的、可调度的执行单元,与同属一个进程的线程共享进程的资源
  • 多线程:启动一个进程,在一个进程内启动多个线程,这样多个线程也可以一块执行多个任务

NodeJS工作模型

nodejs工作模型

NodeJS的单线程

  • 单线程只是针对主进程,I/O操作系统底层多线程调度
  • 单线程并不是单进程(nodejs可以充分利用多核CPU -->cluster对象)

常见应用场景

  • Web Server
  • 本地代码构建
  • 实用工具开发

相关文章

  • 初识Nodejs

    初识Nodejs NodeJs官网 什么是Nodejs Node.js® is a JavaScript runt...

  • 初识nodejs

    初识nodejs nodejs需会工具 nvm工具实现nodejs任意版本切换 npm下载nodejs所需模块 n...

  • 初识NodeJS

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个...

  • 初识NodeJS

    定义 NodeJS is a JavaScript runtime built on Chrome's V8 No...

  • nodejs初识

    参考文章:http://www.runoob.com/nodejs/nodejs-repl.html,这里详细的介...

  • 初识nodejs

    以前听同学说nodejs,即可前端又可后台,让我以为nodejs像是javascript下一种衍生的语言,后来了解...

  • 初识 Nodejs

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个...

  • 初识Nodejs

    Nodejs主要应用领域 1> RESTFul API 2> 实时通信:如消息推送等 3> 高并发 4> I/O阻...

  • 初识NodeJS

    前言 Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具! ...

  • NodeJS(一):初识 NodeJS

    1 NodeJS 是什么 NodeJS 是 javascript 的一种运行环境,是对 Google V8 引擎进...

网友评论

    本文标题:初识NodeJS

    本文链接:https://www.haomeiwen.com/subject/tufzgxtx.html