什么是Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 可以让JavaScript运行在服务器端一个解析器。
它实现了操作磁盘文件和搭建HTTP服务器,模块,操作系统进程等一些以前js没有实现功能。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

I/O

输入(Input): 从系统写入文件
输出(Output): 从系统读取文件

同步和异步

同步是指发起一个调用之后主线程挂起,调用者主动等待调用返回结果。
异步是指发起一个调用之后主线程还可以发起别的调用,被调用者通知调用者返回结果。

阻塞式和非阻塞式

非阻塞式是指发起一个调用不会阻塞主线程的执行,非阻塞式是实现异步的前提。
阻塞式是指发起一个调用主线程是被挂起,调用完成后才可以执行其他操作。

单线程和多线程

单线程是指程序按顺序执行,前面的程序执行完后面才程序可以执行。
多线程是指同时执行多个程序,当前程序执行不影响其他程序执行。

事件驱动

这种模型的程序运行流程是由用户的动作(如鼠标的按键,键盘的按键动作)或者是由其他程序的消息来决定的。