NodeJS特点

作者: 贝程学院_前端 | 来源:发表于2019-06-19 23:19 被阅读15次

面试官: 了解Node吗,有什么特点?

回答官网第一句:
image.png

面试官: 然后呢?


1. 它的用途决定了它的特性-单线程

1.作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题

  1. 这也就意味着任务需要排队,也就说明在Node中用户的请求将会排队,形成一个事件队列

举个例子: 事情发生在一个小酒馆,只有一个伙计,陆陆续续的客官来用餐,那么这个伙计,只能一个一个按顺序给客官下单(先进先出)

image.png

2. 非阻塞I/O

非阻塞:就是没有堵住呗!!
I/O: 输入输出,(磁盘的读写,数据库的查询,网络通信等)

image.png

当访问数据库取数据的时候,需要一段事件,在传统的单线程处理机制中,在执行访问数据库代码时,整个线程都将暂停下来,等待数据库返回结果,才能执行后面的代码。也就是说,I/O阻塞了代码的执行,这样就降低了程序的执行效率

Node.js采用了非阻塞型I/O机制,因此在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放到回调函数中,从而提高了程序的执行效率

当某个I/O执行完毕时,将以事件的形式通知执行I/O操作的线程,线程执行这个事件的回调函数,为了处理异步I/O,线程必须有一个事件循环,不断的检查有没有未处理的事件,依次处理

阻塞模式下,一个线程只能处理一项任务,要想提高吞吐量必须通过多线程,

非阻塞模式下,一个线程永远在执行计算操作,这个线程的CPU核心利用率永远是100%
"意淫"一下,一个小二玩命干活,是不是比多个小二闲着好

3. 事件驱动

点菜->做菜->上菜

image.png

在Node中,在一个时刻,只能执行一个事件回调函数,但是在执行一个事件回调函数的中途,可以转而处理其他事件(例如:又来客人了),然后返回继续执行原事件的回调函数,这种处理机制,成为"事件环"机制

相关文章

  • NodeJS特点

    面试官: 了解Node吗,有什么特点? 回答官网第一句: 面试官: 然后呢? 1. 它的用途决定了它的特性-单线程...

  • Nodejs Event Loop

    Nodejs 特点 Nodejs 是非阻塞I/O、事件与回调函数、单线程、跨平台 Nodejs 执行流程 Node...

  • 前端模块体系

    一、CommonJS(NodeJS) 命令:module、exports、require、global 特点:co...

  • 关于Nodejs的多进程模板Cluster

    前言 我们都知道nodejs最大的特点就是单进程、无阻塞运行,并且是异步事件驱动的。Nodejs的这些特性能够很好...

  • node 一些思考

    nodejs特点 单线程 异步处理 nodejs服务器模型 看下服务器模型进化史 石器时代 同步青铜时代 复...

  • Axios

    axios的优势 功能特点: 在浏览器发送XMLHttpRequest请求 在nodejs中发送http请求 支持...

  • NodeJS特点与适用场景

    一. NodeJS的特点 它是一个Javascript运行环境 依赖于Chrome V8引擎进行代码解释 事件驱动...

  • 【BLOG】hexo搭建blog教程

    1、概述 特点: nodejs生成搭建快速 支持markdown git一键部署 插件丰富,生态完善 2、环境准备...

  • 读 koa2 源码后的一些思考与实践

    koa2的特点优势 什么是 koa2 Nodejs官方api支持的都是callback形式的异步编程模型。问题:c...

  • [Node] Mongoose

    Mongoose是NodeJS的驱动,不能作为其他语言的驱动。Mongoose有两个特点 1、通过关系型数据库的思...

网友评论

    本文标题:NodeJS特点

    本文链接:https://www.haomeiwen.com/subject/hscrqctx.html