• node.js的初步见解


    Node.js 是一个基于 Chrome JavaScript ?时建立的平台, 用于方便地搭建响应速度快、易于扩展的?络应?Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和?效,?常适合在分布式设备上运行的数据密集型的实时应用。V8 引擎执行 Javascript 的速度非常快,性能非常好。Node 是一个 Javascript 运行环境(runtime)。 实际上它是对 Google V8 引擎进行了封装。 Node 对一些特殊用例进行了优化, 提供了替代的 API,使得 V8 在非浏览器环境下运行得更好。

    nodejs是一个基于Chrome V8 引擎的JS运行环境,也就是javascript运行在服务器(server)端
    NodeJS使用了一个事件驱动,非阻塞式的I/O模型,使得其轻量又高效。
    Nodejs包管理器npm是全球最大的开源生态系统。

    nodejs是服务端的js平台。

    npm grunt express 等强大的代码与项目管理应用在nodeJS上。

    关于NodeJS与传统服务器处理平台(Apache)的区别

    Apache的多线程高并发模式

    Apache是一种多线程处理并发,但是在一些大型的web应用上也会发生阻塞。

    线程和进程

    线程是可以独立运行的最小的CPU单位。
    线程可以在同一个进程中并发运行,并共享该进程下的内存地址空间。

    进程可以支持多个线程,它们看似同时执行,但是相互之间并不同步。
    一个进程中的多个线程共享相同的内存地址空间,意味着可以访问相同的变量和对象,并且从同一堆中分配对象。

    这样让线程之间共享信息变得容易,但是也要确保他们不会妨碍同一进程中想的其他线程。

    NodeJS的异步I/O原理

    用数据库的调用举例:

    Apache,执行到第一个线程的时候会等待query返回结果,一方面会导致线程长期阻塞等待,另一方面会为了新请求不断增加线程,会浪费大量的资源,同时线程增加会占用大量的CPU时间来处理内存上下文切换。

    NodeJS异步单线程的,应用的是异步回调的方法,也就是异步的I/O
    解释:当进程执行的时候,不会等待结果的返回,而是直接执行下面的语句,直到进入事件循环,当数据库执行返回结果的时候会将事件发送到事件队列,等线程进入事件循环之后才会调用之前的回调函数。
    也就是nodejs的工作原理其实就是事件循环。每一条nodejs的逻辑都是写在回调函数里面的,而回调函数都是返回之后才异步执行的。

    NodeJS也会发生阻塞,但是阻塞发生在自己的单个线程当中,不是发生在后续回调的流程当中。

    php区别

    node来做网站开应用的是分块加载的模式,不用像php那样把所有的数据一次性加载到客户端。

    NodeJS相比于phpApache开的新线程来讲,节省了CPU内存和上下文切换的时间。

    NodeJS的应用场景

    NodeJs适合应用在具有大量的细小的http请求环境下,例如web的即时聊天程序,或者上万人同时在线的游戏服务器。不用考虑http请求次数过多的问题。

    以上是我对node.js一些初步了解,希望这些可以让更多的朋友了解node.js

  • 相关阅读:
    css 上下居中的广法
    layui下拉框右边图标动画,不要动画
    git clone项目失败,Host key verification failed.
    layui数据表格分页加载动画,自己定义加载动画,"加载中..."
    layui数据表格排序图标被超出的表头挤出去
    layui数据表格,当数据过长出现三个...的时候,点击会弹出一个框全部显示,如何去掉这个框
    eclips 中的 svn 更新报错,被锁住解决办法
    Nginx系列3:用Nginx搭建一个具备缓存功能的反向代理服务
    正向代理和反向代理的区别
    Nginx系列2:用Nginx搭建一个可用的静态资源Web服务器
  • 原文地址:https://www.cnblogs.com/2460403802q/p/5929052.html
Copyright © 2020-2023  润新知