Node.js 是一个开源、跨平台、JavaScript 运行时环境。
这个是 Node.js 的组成架构图:
Node.js 的结构大体分为三个部分:
require
的各个模块,如:http
、fs
、express
、request
等,这部分在源码的 lib 目录下可以看到main
函数入口,还有提供给 lib
模块的 C++ 类接口,这一层是 JavaScript 与底层 C/C++ 沟通的桥梁,由 C++编写,这部分在源码的 src 目录下可以看到⚠️ 注意:我们其实对 Node.js 的单线程一直由很深的误会。事实上,单线程指的是开发者编写的代码只能运行在一个线程单中(习惯称之为主线程),Node.js 并没有给 JavaScript 执行时创建新线程的能力,所以称为单线程,也就是所谓的主线程。其实,Node.js 中许多异步方法在具体的实现时(Node.js 底层封装了 libuv,它提供了线程池、事件池、异步 I/O 等模块功能,其完成了异步方法的具体实现),内部均采用了多线程机制。
相较其他语言的特点。
参考资料: