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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。