nodejs第六课 异步I /O特性
我们将研究“黄焖鸡米饭”的经营策略,两个厨子和一个小姑娘,十张桌子,一个服务员取
照顾跟多客人,当用户访问3000端口的时候,我们把哈哈显示在网页中。
如何呈现
大家看好了这就是黄焖鸡米饭,在招呼172的时候,已经给111上好了菜
133来了,在招呼133的时候,已经把66 78 211 222读取完毕,设置133还没读取完毕,就又来了一次,就是说这个服务员不会死等着,等给你上完菜,交替进行的,
只要I/O越多,NOdejs宏观上越并行,nodejs怕的是计算,但是如果来了一个人来给小姑凉聊天,这个时候就不并行,
Node.js适合开发i/O多的业务,而不适合计算任务繁重的业务,那把计算的是给放给客户端的js不就可以了吗,这话很有道理,
PHP也是多线程,cpu经常在等待I/O结束, 当并行极大的时候,cpu理论上的计算能力是100%;
因为nodejs想在破的机器上也能高效运行,所以剑走偏锋采用了单线程的模式。
例如,当在访问数据库取得数据的时候,需要一段较长的事件,在传统的处理机制中,在执行了访问数据库代码之后,整个线程将都暂停下来,等待数据库返回结果,才能执行后面的代码,也就是说,I/O阻塞了代码的执行,极大的降低了程序执行效率。
由于node。js中采用了非阻塞I/O机制,因此在执行了访问数据短裤代码之后,将立即实行后面的代码。
当某个I/o执行完毕时,将以事件的形式通知执行I/O的线性,线程执行这个时间的回调函数,为了处理异步i/o,线程必须有事件循环,不断的检查有没有未处理的事件,一次予以处理。
3.3事件驱动
事件驱动是nodejs的底层机制,我们只需要了解nodeJS不会“上错菜”,的原因就是事件驱动,有一个事件环,那桌是个回民,你上鱼香肉丝,不会上错菜就是因为有一个东西事件驱动,
nodejs会把每个人的请求的事件,堆栈,以后再处理
转载于:https://www.cnblogs.com/JavascriptAndHtml5/p/9516957.html
- 点赞
- 收藏
- 分享
- 文章举报
- Servlet 3特性:异步Servlet
- nodejs(五)同步异步--BLOCKING THE EVENT LOOP
- nodejs 学习三 异步和同步
- Oracle12c中性能优化&功能增强新特性之全局索引DROP和TRUNCATE 分区的异步维护
- Nodejs异步流程框架async的方法
- Nodejs异步流程控制Async
- asp.net使用H5新特性实现异步上传
- Servlet新特性:异步处理
- ADO.NET2.0新特性-异步查询
- Nodejs课堂笔记-第六课 在DynamoDB中如何创建表
- 论完爆nodejs吹的异步回调的异步模型async await
- nodejs异步实践
- Nodejs爬虫进阶教程之异步并发控制
- Nodejs异步流程控制Async
- Nodejs异步回调的优雅处理方法
- 深入浅出nodejs学习笔记--第六~八章 理解Buffer 网络编程 构建WEB应用
- NodeJS:(一)特性&环境&测试
- Nodejs异步回调的优雅处理方法
- 【spring boot】2.0 集成 webflux 以及 异步响应式新特性验证
- Core Data 异步查询(iOS 8 特性)