node.js非阻塞io_Node.js非阻塞IO模型

node.js非阻塞io

如今,开发人员已经知道将Node.js作为服务器端javascript执行平台。

根据nodejs.org的说法,“ Node.js是基于ChromeJavaScript运行时构建的平台,可轻松构建快速,可扩展的网络应用程序。 Node.js使用事件驱动的非阻塞I / O模型,使其轻巧高效,非常适合跨分布式设备运行的数据密集型实时应用程序。”

现在,node.js打开了一种执行或服务于Web请求或任何其他类型的服务器请求的新方法-称为非阻塞IO操作。

我们遇到了以下链接– http://code.danyork.com/2011/01/25/node-js-doctors-offices-and-fast-food-restaurants-understanding-event-driven-programming/是展示node.js的非阻塞概念以及与实际工作场景相关的一种极好的方法。

作为我过去5-6年担任J2ee程序员的背景,我了解并理解了J2ee Environment中的Servlet编程模型,它是一种多线程编程模型,即,当Web请求到达基于Java的Web服务器时,请求就到达了带有请求的servlet,然后servlet打开一个新线程来处理请求并将数据响应返回给客户端。 本质上共享的所有与数据库相关的方法或任何服务器资源密集型调用,都应从servlet进行仔细处理,以避免任何死锁或其他与共享库有关的不必要情况。

尽管通过这种方式,与服务器进程相比,进程分属于线程并在线程内为Web请求提供服务,这些开销具有相对较小的开销。 但是,即使在线程调用内执行请求和响应过程中某个数据库调用占用了相当长的时间,它仍将通过同步活动来阻止客户端进行此操作,从而阻止IO操作。

现在是时候了解定义了node.js平台的非阻塞I / O了。

首先,node.js应用程序环境将在单线程编程模型上运行。

node.js中的所有Web请求和服务器请求调用均属于非阻塞I / O。 一个Web请求进入node.js Web服务器,并且该Web服务器接受此请求并将此请求处理给侦听器对象以处理响应。 此外,该Web服务器将随时准备接受任何新的Web请求。 并且先前的响应处理将保留在队列中以执行其余操作。 现在,node.js环境负责准备Web响应,该响应又可以是来自实际应用程序的数据库调用。 此外,此数据库查询还可以包含回调函数,并且数据库的响应已准备就绪。 这些操作在队列中执行,也称为事件驱动编程,并且所有这些操作本质上都是异步的。

因此,这里讨论的重点是,node.js上下文中的所有函数调用都是非阻塞的输入输出操作。 在node.js环境中,执行操作由一个对象执行,并且操作的结果由回调函数处理。

我们将在这些应用程序体系结构的进一步工作中,进一步讨论node.js执行模型,事件驱动的编程和异步操作。

到此为止。 评论很好。

参考:来自Phlox Blog博客的JCG合作伙伴 Piyas De的Node.js非阻塞IO模型

翻译自: https://www.javacodegeeks.com/2013/12/node-js-non-blocking-io-model.html

node.js非阻塞io

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值