zoukankan      html  css  js  c++  java
  • 揭开NodeJS的神秘面纱!

    一、NodeJS是什么?

    Node是一个服务器端JavaScript解释器
    Node.js是一套用来编写高性能网络服务器的JavaScript包。

    二、Node的目标是什么?

    Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。

    我们来做个数学题。在 Java™ 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 的配套内存。
    在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户。
    随着您的客户群的增长,如果希望您的 Web 应用程序支持更多用户,那么,您必须添加更多服务器。

     

    Node 解决这个问题的方法是:更改连接到服务器的方式。
    每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。
    Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接。

    三、Node如何工作?

    Node 本身运行 V8 JavaScript。

    事件驱动编程

    实际上,服务器端和客户端没有任何区别。没错,这没有按钮点击操作,也没有向文本字段键入的操作,但在一个更高的层面上,事件正在 发生。
    一个连接被建立,这是一个事件!数据通过连接进行接收,这也是一个事件!数据通过连接停止,这还是一个事件!

    为什么这种设置类型对 Node 很理想?JavaScript 是一种很棒的事件驱动编程语言,因为它允许使用匿名函数和闭包,更重要的是,任何写过代码的人都熟悉它的语法。事件发生时调用的回调函数可以在捕获事件处进行编写。这样可以使代码容易编写和维护,没有复杂的面向对象框架,没有接口,没有过度设计的可能性。
    只需监听事件,编写一个回调函数,其他事情都可以交给系统处理!

  • 相关阅读:
    android 布局中的单位及分辨率自解
    7种例子讲解Android Dialog!
    jqDnR 层拖动插件 潇湘博客
    jQuery选择器热榜
    左边补0 php 潇湘博客
    Javascript代码压缩、加密算法的破解分析及工具实现
    discuz 整合总结
    js 格式化 潇湘博客
    Linux内核网络协议栈深入分析(五)套接字的绑定、监听、连接和断开
    Linux内核基于Netfilter的内核级包过滤防火墙实现
  • 原文地址:https://www.cnblogs.com/JChen666/p/3372876.html
Copyright © 2011-2022 走看看