我是靠谱客的博主 激动秋天,最近开发中收集的这篇文章主要介绍对Nodejs的个人理解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

相对于apache等的线程模式,nodejs内置了事件处理机制。面对每一个请求,并不是创建一个线程去处理,而是使用一个事件去处理。事件处理可以减少线程的创建。在处理一个事件时,只需要多分配一部分堆内存即可。事件的回调可以通过内部管道通信来完成。

NIO。非阻塞式的IO操作,不会直接去操作IO,而是通过事件回调来实现,减少等待事件。

事件处理机制在内部减少了同步等待的可能性,从而可以处理更高的同步请求,提升系统的吞吐量。

好比银行的排号系统。假设银行网点只有一个柜台(CPU),柜台前可以供5个人排队(同步数),那么这个银行网点支持最大并发就是5,如果多于5人,就只能在银行外面等待了。当银行加入的排号系统后(时间驱动),每个到银行处理事务的人先去拿个号,然后等待叫号,那么银行可以同时发出50个号,拿到号的人在未叫号之前,可以处理自己的事情,甚至可以去旁边喝下午茶都可以。

那么为什么apache不支持事件处理,非阻塞式的IO呢? 历史原因,没有考虑过这么大的请求。比如香港的XX时装店,店里最多只能进入20人,其他人只能在门口排队,里面走了一个顾客,排队的前面就进去一个。浪费了大量的等待时间。但走秀网上去购物,你的等待时间基本上是0.


Nodejs官网中的介绍很值得去研究:

  • Slides from JSConf 2009
  • Slides from JSConf 2010
  • Video from a talk at Yahoo in May 2010

 

最后

以上就是激动秋天为你收集整理的对Nodejs的个人理解的全部内容,希望文章能够帮你解决对Nodejs的个人理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部