码迷,mamicode.com
首页 > Web开发 > 详细

nodejs第六课 异步I /O特性

时间:2018-08-22 13:15:11      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:读取   业务   node.js   桌子   nod   异步   任务   数据   一个   

我们将研究“黄焖鸡米饭”的经营策略,两个厨子和一个小姑娘,十张桌子,一个服务员取

照顾跟多客人,当用户访问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会把每个人的请求的事件,堆栈,以后再处理

 

技术分享图片

 

nodejs第六课 异步I /O特性

标签:读取   业务   node.js   桌子   nod   异步   任务   数据   一个   

原文地址:https://www.cnblogs.com/JavascriptAndHtml5/p/9516957.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!