Skip to content

Latest commit

 

History

History
executable file
·
29 lines (19 loc) · 1.41 KB

nodejs.md

File metadata and controls

executable file
·
29 lines (19 loc) · 1.41 KB

NodeJS 学习笔记

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。

  • 单线程
  • 非阻塞I/O
  • 事件驱动

单线程

在JAVA、PHP等服务器端语言中,会为每一个客房端链接创建一个新的线程,第个线程约耗费大约2MB的内存。

好处:操作系统完全不在有线程创建、销毁的时间开销。

坏处:一个线程崩溃,整修服务都会崩溃。

非阻塞I/O

I/O阻塞了代码的执行,极大的降低了程序的执行效率。

当程序遇到I/O操作,会转而处理后面的代码,将处理I/O结果的处理代码放到回调函数中,当I/O执行完毕后,将以事件的形式通知I/O操作的线程。为了处理异步的I/O,线程必须有事件循环,不断的检查有没有未处理的事件,依次处理。

事件驱动

同一时刻只能处理一个事件回调函数,在处理一个事件上回调函数中途可以转而处理其它事件(比如有新一用户链接了),然后返回继续执行原事件的回调函数,这种处理机制称为“事件环”机制。

不管是新用户的请求,还是老用户的I/O操作,都以事件方式加入事件环,等待处理。

NodeJS 热部署

npm install hotnode -D