node 非阻塞,nodejs非阻塞io原理

  node 非阻塞,nodejs非阻塞io原理

  本文带你了解Node.js中的非阻塞I/O,希望对你有帮助!

  node.js速度课程简介:进入学习

  

如何理解NodeJs的非阻塞I/O

   1、I/O:Input/output指一个系统的输入输出。

  2.不堵和堵的主要区别是:在接收输入到输出结果之间的过程中,能否继续接收其他的输入。[推荐研究:《nodejs 教程》]

  例子:

  比如说:出去吃饭

  出去吃饭通常有两种方式:

  1去食堂吃饭:排队吃饭。

  [排队]-[等前面的人做饭]-[自己动手]-[吃饭]

  去餐厅。

  [坐下]-[点菜]-[等待]-[吃]

  对于这两种吃法:

  1.在食堂吃饭:对于煮饭的人来说,他们必须等到上一个人吃完后,才能放下饭。这个过程就是阻塞模式。

  2在餐厅吃饭:去餐厅吃饭。服务员点完你的餐后,会继续处理下一个人的点餐需求。当你的饭准备好的时候,他会把它带给你。对于服务员来说,这个过程是一个无阻塞的过程。

  理解非阻塞I/O的要点

  1确定一个进行I/O操作的系统,比如:上面做饭的例子中,执行I/O的系统是服务人员。

  2在系统进行I/O操作的过程中能否再进行其他的I/O

  代码演示

  在代码中,我们引入了一个库glob,主要用于查找符合条件的文件。

  详情请见https://www.npmjs.com/package/glob。

  首先,我们使用glob提供的同步方法来读取文件。

  const glob=require( glob );

  设结果=null

  result=glob . sync(_ _ dirname /* */*);

  console.log(结果);结果是文件数组:

  让我们来看看这个同步操作的执行时间:

  const glob=require( glob );

  设结果=null

  console . time( glob );

  result=glob . sync(_ _ dirname /* */*);

  console . time end( glob );结果:

  一个文件读取操作会阻塞进程33毫秒,这是不可接受的!

  接下来,我们使用异步的方式去读取文件

  让result2=null

  console . time( glob 2 );

  glob(__dirname /**/*,(err,res)={

  console . log( glob over );

  });

  console . time end( glob 2 );结果:

  异步读取文件总共需要4毫秒,我们还可以在异步读取文件的过程中执行其他操作。

  

结束语

  经过学习,相信你对非阻塞I/O有了更深的理解,所以,下期见。好好学习,天天向上!

  有关编程的更多信息,请访问:编程视频!以上是对Node.js中非阻塞I/O细节的深入分析请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: