• Node.js学习笔记(1)


    近期在看一些Node.js的知识,看完后觉得,一些前面的东西忘记了,于是整理一下,方便自己查阅,也希望对学习Node.js的朋友有些帮助;

    当然以下只是我个人的观点和理解,不喜勿喷,也望大神指教。

    一、Node.js是什么

    关于这个问题,刚看到它的时候,可能觉得和javascript有关系,没错,确实有关系;但是,首先Node.js不是一门语言,与php python perl ruby的

    “既是语言又是平台”不同;Node.js也不是一个javascript框架或者javascript类库,不同于Jquery ExtJS;Node.js是一个可以让javascript运行在

    服务器端的平台;

    二、Node.js特点

    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密集、少量业务逻辑的场景

    不适合的场景:

    1.计算密集型应用

    2.单用户多任务的程序

    3.逻辑十分复杂的事务

    4.unicode与国际化

  • 相关阅读:
    团队-爬取豆瓣电影TOP250-成员简介及分工
    结对-贪吃蛇游戏-需求分析
    个人编程作业
    团队项目编程作业
    课后作业-阅读任务-阅读提问-1
    团队-爬虫豆瓣电影TOP250-成员简介及分工
    结对-英文词频检测程序-需求分析
    对软件工程课程的期望
    自我介绍
    作业0
  • 原文地址:https://www.cnblogs.com/fanfan259/p/3547782.html
Copyright © 2020-2023  润新知