您的位置:首页 > Web前端 > Node.js

nodejs第六课 异步I /O特性

2020-02-02 14:13 731 查看

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

照顾跟多客人,当用户访问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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
dengfubi7044 发布了0 篇原创文章 · 获赞 0 · 访问量 177 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: