标签:读取 业务 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会把每个人的请求的事件,堆栈,以后再处理
标签:读取 业务 node.js 桌子 nod 异步 任务 数据 一个
原文地址:https://www.cnblogs.com/JavascriptAndHtml5/p/9516957.html