Node.js的非凡之处

来源:互联网 发布:插补算法原理 编辑:程序博客网 时间:2024/04/27 23:25

这几天学习了Node.js,果然非同凡响, 那么,他的非凡支持有哪些呢?

1, 服务端javascript

     使用google的V8引擎,node.js使得javascript能够运行在Server端,也就是从这一天开始,

     javascipt才真正扬眉吐气,可以和他的大哥Java平起平坐, 这不能不说是一个非凡。

2,单线程, 异步处理

    一般情况下,我们提到异步,第一反应肯定是多线程。单线程?怎么做到异步呢?

   node.js通过event loop架构,实现了单线程异步处理,让你感受它的非凡。

   说到event loop技术,不能不提webserver的多用户并发访问,如何高效处理的问题。

   业界的两个代表是Apache和Nginx。 Apache使用多线程架构, Nginx使用Event Loop架构。

   两者其实各有千秋, Apache针对每个Client请求都建立一个线程,这样随着线程增多,要求的内存必然同比例增多。

  这就要求在构建系统时,要考虑最大的用户并发数,并有一定的余量,从而来应对特殊情况。

  实际上就是为了解决这个问题, Event Loop才应运而生。 Event Loop使用单线程, 可怎么解决并发请求问题呢。

  答案就是NO Blocking(非阻塞)。

  何谓非阻塞, 简单的说就是不用等待数据的IO操作,就可以进行下一步处理的方式。为了实现异步并行,就必须要使用

 Callback(回调)。也就是说Event Loop就是在Loop中,一旦有某个Event发生时,CallBack会被调用,从而进行response。

 这样用一个线程就够了,内存和Client请求不成比例,从而降低了Server 瘫痪风险。

当然Event Loop也有缺点,那就是所有的处理必须是非阻塞, 如果有阻塞发生,所有的处理就停止啦。

原创粉丝点击