- 事件驱动
- 非阻塞I/O
- V8引擎
- 强制不共享任何资源的单线程、单进程系统。
- 无法利用多核CPU
- 错误会引起整个应用退出
- 大量计算占用CPU导致无法继续调用异步I/O
- JavaScript与其余线程无法共享任何状态
- 针对CPU密集型应用优化
- C/C++扩展
- child_process,Master-Worker管理方式
-
- 路径分析
- 文件定位
- 编译环境
- CommonJS与AMD
- node.js参照CommonJS规范,CommonJS是同步加载模块的,因此只有加载完成才能执行下一步。
- AMD(Asynchronous Module Definition)则是异步加载的,允许指定回调函数。(require.js和curl.js)
- node.js线程
- 主线程: 分配任务,处理结果。事件循环的主体部分。
- I/O线程池: 处理各种不同任务的各个I/O线程,线程池中的各个线程互不依赖