iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >Node.js中非阻塞 I/O的示例分析
  • 390
分享到

Node.js中非阻塞 I/O的示例分析

2024-04-02 19:04:59 390人浏览 泡泡鱼
摘要

这篇文章主要介绍了node.js中非阻塞 I/O的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 说到

这篇文章主要介绍了node.js中非阻塞 I/O的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

说到 node.js,大家大概率听过一堆让人头晕的专有名词

关于异步,主要是事件循环和**非阻塞 I/O,**正式因为这两点 Node.js 才能称作高性能。

因此搞清楚 Node.js 的异步机制和使用方法是很重要的

Node.js 的非阻塞 I/O 是什么

  • I/O 即 Input/Output,一个系统的而输入和输出

  • 阻塞 I/O 和非阻塞 I/O 的区别就在于系统接收输入再到输出的时间,能不能接收其他输入

排队打饭的例子

Node.js中非阻塞 I/O的示例分析

阻塞 I/O 和非阻塞 I/O 的区别就在于系统接收输入再到输出的时间,能不能接收其他输入

  • 对于顾客/点菜人员来说

    • 排队打饭是阻塞 I/O(后面的顾客必须等待前面顾客的收到后自己才能收到)

    • 餐厅点菜是非阻塞 I/O(因为餐厅有很多个服务员,别人点菜的同时,自己也可以点菜)

  • 把食堂阿姨、服务员比作软件系统

    • 食堂阿姨只能一份份地打饭 -> 阻塞 I/O

    • 服务生点完菜后还可以服务其他客人 -> 非阻塞 I/O

  • 输入 = 点菜

  • 输出 = 端菜

【推荐学习:《nodejs 教程》】

提问等待解决的例子

例如: 一个开发者在论坛上提出了一个问题: "这个 Node.js 问题怎么解决? 在线等,急" .

阻塞 I/O 的情况就是 -> 他一直等待其他人回答,当其他人回答后,他再去做其他的事 。

非阻塞 I/O 的情况就是 -> 他去做其他的事 ,过一段时间后再回来看答案

做家务的例子

小芳做家务,需要做如下事情:

  • 用洗衣机洗衣服(20 分钟))

  • 扫地(10 分钟)

  • 整理书桌(10 分钟)

  • 晾衣服(10 分钟)

请设计一个巧妙合理的顺序,使小芳花最少的时间完成这些事

  • A:20 分钟

  • B:25 分钟

  • C:30 分钟--因为洗衣机洗衣服时,小芳可以做其他的事 ✅

  • D:35 分钟

理解非阻塞 I/O

注意点:

  • 确定 系统,输入,输出,分别是什么

  • 在 I/O 过程中, 能不能进行其他 I/O

从代码理解阻塞 I/O

const glob = require("glob");

var result = null;
console.time("glob");
// 获取目下的文件和文件名
result = glob.sync(__dirname + "*");
console.timeEnd("glob");
console.log(result);

打印出如下结果

Node.js中非阻塞 I/O的示例分析

可以看到,需要花费 30 毫秒的等待时间才能拿到结果

从上面的代码可以得出,

阻塞 I/O 有一个等待时间,在执行过程中不可以执行其他的事情

从代码理解非阻塞 I/O

const glob = require("glob");

var result = null;
console.time("glob");
// 获取目下的文件和文件名
glob(__dirname + "*", function (err, res) {
  result = res;
  console.log("Got result");
});
console.timeEnd("glob");

console.log(1 + 1);

打印出如下结果

glob: 3.198ms
2
got result

从上面的代码可以得出,非阻塞 I/O 减少了等待时间,在执行过程中也可以执行其他的事情

感谢你能够认真阅读完这篇文章,希望小编分享的“Node.js中非阻塞 I/O的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网VUE频道,更多相关知识等着你来学习!

--结束END--

本文标题: Node.js中非阻塞 I/O的示例分析

本文链接: https://www.lsjlt.com/news/70022.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js中非阻塞 I/O的示例分析
    这篇文章主要介绍了Node.js中非阻塞 I/O的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 说到 ...
    99+
    2024-04-02
  • Node.js中的非阻塞I/O举例分析
    这篇文章主要介绍“Node.js中的非阻塞I/O举例分析”,在日常操作中,相信很多人在Node.js中的非阻塞I/O举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”No...
    99+
    2024-04-02
  • Node.js中非阻塞I/O是什么
    本篇文章为大家展示了Node.js中非阻塞I/O是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。先新建一个index.js,再打开我们前端人的vs-code,打...
    99+
    2024-04-02
  • Node中对非阻塞I/O、事件循环的示例分析
    这篇文章给大家分享的是有关Node中对非阻塞I/O、事件循环的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Node.js的主要特点单线程、非阻塞I/O、事件驱动,这三个...
    99+
    2024-04-02
  • Node.js的非阻塞I/O、异步与事件驱动实例分析
    今天小编给大家分享一下Node.js的非阻塞I/O、异步与事件驱动实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、...
    99+
    2023-07-02
  • Nodejs中阻塞和非阻塞的示例分析
    这篇文章主要介绍了Nodejs中阻塞和非阻塞的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于阻塞和非阻塞这两个概念大家应该都有一些自己的理解:再简单说一下,阻塞大...
    99+
    2023-06-15
  • JAVA NIO下I/O的阻塞与非阻塞实现
    本篇内容介绍了“JAVA NIO下I/O的阻塞与非阻塞实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!当前环境jdk == 1.8代码地址...
    99+
    2023-06-02
  • Node.js的非阻塞I/O、异步与事件驱动介绍
    1、Node.js的单线程 非阻塞 I/O 事件驱动 在 Java、PHP 或者.net 等服务器端语言中,会为每一个客户端连接创建...
    99+
    2024-04-02
  • php五大io模型之阻塞与非阻塞的示例分析
    小编给大家分享一下php五大io模型之阻塞与非阻塞的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php实现五大io模型-1阻塞与非阻塞阻塞:是指应用程序执行IO操作需要彻底完成后才返回到用户空间非阻塞:是指应用程...
    99+
    2023-06-15
  • Nodejs中异步I/O的示例分析
    小编给大家分享一下Nodejs中异步I/O的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!“异步”这个名词其实在Node之前就已经诞生了。但是在绝大多数高...
    99+
    2023-06-14
  • C++ 函数在网络编程中如何实现非阻塞 I/O?
    c++++中使用非阻塞i/o 进行网络编程可以显著提升应用程序的响应能力和吞吐量。原理:使用异步i/o操作,应用程序在发出i/o请求后继续执行,内核完成操作后生成事件通知应用程序。实现:...
    99+
    2024-04-27
    网络编程 非阻塞 i/o c++
  • Java I/O 之File类的示例分析
    这篇文章主要为大家展示了“Java I/O 之File类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java I/O 之File类的示例分析”这篇文章吧。File类Java使用Fil...
    99+
    2023-06-20
  • linux系统中文件I/O的示例分析
    小编给大家分享一下linux系统中文件I/O的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!linux 文件I/O一,文件描述符对内核而言,所以打开的文件...
    99+
    2023-06-13
  • 实现NodeJS异步I/O的示例分析
    这篇文章主要介绍实现NodeJS异步I/O的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.NodeJS概述:要学习一个语言或者平台,我们首先应该知道其定义,依据定义来扩展...
    99+
    2024-04-02
  • css加载造成阻塞的示例分析
    这篇文章主要为大家展示了“css加载造成阻塞的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css加载造成阻塞的示例分析”这篇文章吧。对css加载对DO...
    99+
    2024-04-02
  • 分析Java非阻塞算法Lock-Free的实现
    目录非阻塞的栈非阻塞的链表非阻塞的栈 我们先使用CAS来构建几个非阻塞的栈。栈是最简单的链式结构,其本质是一个链表,而链表的根节点就是栈顶。 我们先构建Node数据结构: pub...
    99+
    2024-04-02
  • sql server性能调优 I/O开销的示例分析
    这篇文章主要介绍sql server性能调优 I/O开销的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.概述IO 内存是sql server最重要的资源,数据从磁盘加载到...
    99+
    2024-04-02
  • Java9对HTTP2协议支持与非阻塞HTTP API实例分析
    这篇文章主要介绍了Java9对HTTP2协议支持与非阻塞HTTP API实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java9对HTTP2协议支持与非阻塞HTTP API实例分析文...
    99+
    2023-06-29
  • Java Socket上Read操作阻塞问题的示例分析
    这篇文章给大家分享的是有关Java Socket上Read操作阻塞问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Socket上的Read操作阻塞问题从Socket上读取对端发过来的数据一般有两种方法...
    99+
    2023-06-25
  • Node.js中的示例分析
    小编给大家分享一下Node.js中的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Node.js 的非阻塞 I/OI/O 即 Input/Output,一...
    99+
    2023-06-15
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作