• 关于node


    原文:https://blog.csdn.net/Lucky_LXG/article/details/54575515

    Node.js是什么?

    Node.js不是一个javascript框架或者javascript类库,不同于Jquery ExtJS;

    Node.js是一个可以让javascript运行在

    服务器端的平台;

    Node.js特点

    ①是一个javascript运行环境或者平台

    ②依赖于Chrome V8引擎进行代码解释

    ③基于事件驱动

    ④异步式I/O(非阻塞I/O)

    ⑤单进程、单线程

    ⑥轻量、可伸缩,适用于实时数据交互应用

    通过以上的特点,我们可以总结一句话:

    Node.js是用异步式I/O和事件驱动,依赖于Chrome的V8引擎进行代码解释的javascript运行环境;

    Node.js最大的特点就是异步式I/O和事件驱动,对于高并发的解决方法,Node.js摒弃了传统的多线程模型,

    使用的是单线程模型,对所有的I/O请求都采用异步式请求的方式;

    这里简单介绍下,异步式I/O和事件驱动:

    异步式I/O,又叫非阻塞I/O,

    在阻塞状态下,当线程遇到I/O操作时,会等待I/O操作的完成,从而造成阻塞,而一个线程只能处理一项任务,要想提供吞吐量必须通过多线程;

    而非阻塞状态下,不会等待I/O操作的结果返回,继续执行下一条语句,当结果返回时,I/O以事件的方式通知;

    Node.js的异步式I/O由回调函数完成,事件的回调函数在遇到I/O请求并且当I/O操作完成时,会发送一个事件

    到事件队列,而Node.js的事件循环机制会检查队列中有没有未处理的事件,直到程序结束,所以可以说,

    Node.js程序由事件循环开始,到事件循环结束。

    Node.js的用途

    Node.js适合应用在高并发、I/O密集、少量业务逻辑的场景

    善于I/O,不善于计算。因为Node.js最擅长的就是任务调度,如果你的业务有很多的CPU计算,实际上也相当于这个计算阻塞了这个单线程,就不适合Node开发。

    当应用程序需要处理大量并发的I/O,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,Node.js非常适合。Node.js也非常适合与web socket配合,开发长连接的实时交互应用程序

  • 相关阅读:
    数据库MySQL调优实战经验总结
    Apache常见功能实战详解
    使用HeartBeat实现高可用HA的配置过程详解
    Nginx实现集群的负载均衡配置过程详解
    CentOS系统通过PXE实现批量无人值守安装
    CentOS 7 网卡命名修改为eth0格式
    Nagios 系统监控基本安装配置过程详解
    LAMP 系统服务搭建过程详解
    使用 python 管理 mysql 开发工具箱
    C++标准库string类型的使用和操作总结
  • 原文地址:https://www.cnblogs.com/heson/p/10018010.html
Copyright © 2020-2023  润新知