Node.js学习记录1
2016-10-11 14:39
375 查看
node特性
1,单线程、异步、非阻塞io 。 2,事件驱动、事件环。
1,异步式io
对于高并发解决方案, 传统架构:为每个请求创建一个新的线程,每个线程开辟独立工作内存空间,由cpu进行线程间切换调度。 node:单线程模型,cpu利用率高,减少多线程的开销,避免了上下文切换。 对于操作系统而言,创建一个线程代价较高,需要分配内存、列入调度、线程间切换的时候需要执行内存换页,cpu缓存被清空,切换回来的时候重新从内存中出去数据。
同步IO(阻塞) | 异步IO(非阻塞) |
---|---|
利用多线程提供吞吐量 | 单线程即可实现高吞吐量 |
通过时间片和线程调度利用多核cpu | 通过功能划分利用多核cpu |
需要由操作系统调度多线程使用多核cpu | 可以将单进程绑定到单核cpu |
难以充分利用cpu资源 | 可充分利用cpu资源 |
内存轨迹大,数据局部性弱 | 内存轨迹小,数据局部性强 |
符合线性编程思维 | 不符合传统编程思维 |
2,事件
nodejs所有异步IO操作都会在完成时发送一个事件到事件队列。
事件循环机制
nodejs程序由事件循环开始到事件循环结束,所有的逻辑都是事件的回调函数。
相关文章推荐
- Node.js学习记录
- nodejs+express+ejs学习记录
- 学习记录——node.js(一)
- 学习用Node.js和Elasticsearch构建搜索引擎(6):实际项目中常用命令使用记录
- Node.js开发指南学习记录1
- Node.js权威指南学习记录
- NodeJS学习笔记--NodeJS+Express基础概念梳理记录
- node.js 学习记录(一)安装
- 学习记录——node.js(二)
- node.js学习记录(1)
- node.js入门学习
- 怎样有效地学习 Node.js ?
- node.js进阶学习
- node.js入门学习
- 学习NodeJS第一天:node.js引言(转)
- js学习记录2--匿名函数,函数参数
- 学习node.js-02
- 学习Node.js-01
- Node.JS学习笔记
- 20101208 学习记录:Js的substring、substr和C#的Substring