zoukankan      html  css  js  c++  java
  • Node.js笔记1

    Node.js入门笔记

    1. node -help 可以显示帮助信息
    2. node REPL 模式(Read-eval-print loop) 输入—求值—输出循环
    直接在cmd输入node 可以进入
    连续按两次 Ctrl + C 即可退出 Node.js 的 REPL 模式

    $ node
    > console.log('Hello World');
    Hello World
    undefined

    > 3+2
    5
    3. 使用 supervisor自动重启脚本

    sudo npm install -g supervisor //全局安装
    $ supervisor app.js //启动app.js
    当代码被改动时,运行的脚本会被终止,然后重新启动。
    4. 异步式I/O与事件编程

    阻塞式 I/O :线程在执行中如果遇到磁盘读写或网络通信(统称为 I/O 操作),通常要耗费较长的时间,这时操作系统会剥夺这个线程的 CPU 控制权,使其暂停执行,同时将资源让给其他的工作线程,这种线程调度方式称为 阻塞。

    异步式 I/O :当线程遇到 I/O 操作时,不会以阻塞的方式等待 I/O 操作的完成或数据的返回,而只是将 I/O 请求发送给操作系统,继续执行下一条语句。当操作系统完成 I/O 操作时,以事件的形式通知执行 I/O 操作的线程,线程会在特定时候处理这个事件。为了处理异步 I/O,线程必须有事件循环,不断地检查有没有未处理的事件,依次予以处理。

    **阻塞模式下,一个线程只能处理一项任务,要想提高吞吐量必须通过多线程。而非阻塞模式下,一个线程永远在执行计算操作,这个线程所使用的 CPU 核心利用率永远是 100%,I/O 以事件的方式通知。**

    异步式 I/O(非阻塞式):
    1. 单线程即可实现高吞吐量
    2. 通过功能划分利用多核CPU
    3. 可以将单进程绑定到单核 CPU
    4. 可以充分利用 CPU 资源
    5. 内存轨迹小,数据局部性强
    6. 不符合传统编程思维
    同步式 I/O(阻塞式):
    1. 利用多线程提供吞吐量
    2. 通过事件片分割和线程调度利用多核CPU
    3. 需要由操作系统调度多线程使用多核 CPU
    4. 难以充分利用 CPU 资源
    5. 内存轨迹大,数据局部性弱
    6. 符合线性的编程思维
    **Node.js 中,并不是所有的 API 都提供了同步和异步版本。Node.js 不鼓励使用同步 I/O**

    Now or nerver .
  • 相关阅读:
    使用B或BL跳转时,下一条指令的地址的计算
    【flask-Email】邮件发送
    【MAC】 命令行解压缩 rar 文件
    【flask_sqlalchemy】模糊查询
    【python】集合 list差集|并集|交集
    【pycharm】Mac版快捷键
    【mysql】查询最新的10条记录
    【Python】—— 获取当前运行函数名称和类方法名称
    【Python】—— 获取函数内部变量名称
    【python3】 抓取异常信息try/except
  • 原文地址:https://www.cnblogs.com/iyueyao/p/3344405.html
Copyright © 2011-2022 走看看