Node.js---1.Node.js的特点

来源:互联网 发布:月薪5000如何理财 知乎 编辑:程序博客网 时间:2024/05/01 17:32

    Node:“一个搭建在Chrome JavaScript运行时上的平台,用于构建高速、可伸缩的网络程序。Node.js采用的事件驱动(事件触发,用事件轮询)非阻塞(异步)I/O模型,使它轻量高效,并成为构建运行在分布式设备上数据密集型实时程序的完美选择。”

  • 传统的服务端编程的I/O模型: 阻塞的I/O处理:当有更多请求过来时,通常会用多线程的方式出处理这种并发操作,一种常见的实现是给每个连接分配一个线程,并为那些连接设置一个线程池。可以把线程想象成一个计算工作区,处理器在这个工作区中完成指定的任务。线程通常都是处于进程之内的,并且会维护它自己的工作内存。每个线程会处理一到多个服务器连接
  • 传统服务端编程的I/O模型的缺点:程序内的线程管理会非常复杂。此外,当需要大量的线程处理很多并发的服务器连接时,线程会消耗额外的操作系统资源。线程需要CPU和额外的RAM来做上下文切换。

  • Node中,I/O几乎总是在主事件轮询之外进行,使得服务器可以一直处于高效并且随时能够做出响应的状态。Node混杂了事件驱动和异步的模型,加上几乎随处可用的JavaScript语言,帮我们打开了一个精彩纷呈的数据密集型实时程序的世界。
  • Node还有一组用来处理多种网络和文件I/O的核心模块---服务端语言的常见配置。
  •  Node在数据流数据流动上也很强大。可以把数据流看成特殊的数组,只不过数组中的数据分散在空间上,而数据流中的数据是分散在时间上的。通过将数据一块一块地传送,开发人员可以每收到一块数据就开始处理,而不用等所有数据都到全了再做处理。可读和可写数据流可以连接起来形成管道,就像shell脚本中用的|(管道)操作符一样。这是一种高效的数据处理方式,只要有数据准备好就可以处理,不用等着读取完整个资源再把它写出去

0 0
原创粉丝点击