nodejs中的阻塞与非堵塞的区别
来源:互联网 发布:南山软件产业基地一栋 编辑:程序博客网 时间:2024/05/17 08:47
这几天刚好在学习nodejs ,在今天实际操作时,想对堵塞和非堵塞的区别做个总结,废话不多说,直接上例子:
一下是我的目录结构:
input.txt文件:这个文件是乱打的,随便打的
wo men shi zhe yang de hua ,ni hai hui ai wo ma ?
mian.js文件堵塞:
var http = require('http');var fs = require('fs');var server = http.createServer(function (request, response) {// 发送 HTTP 头部 // HTTP 状态值: 200 : OK// 内容类型: text/plainresponse.writeHead(200, {'Content-Type': 'text/html;charset=UTF8'});var data = fs.readFileSync('D:/Documents/HBuilderProject/nodejs/js/input.txt');console.log(data.toString());console.log("程序执行结束!");// 发送响应数据 "Hello World"response.end('Hello World 这是我的第一个nodejs,哈哈哈\n');}); server.listen(8891,'127.0.0.1');// 终端打印如下信息console.log('Server running at http://127.0.0.1:8891/');
mian2.js文件非堵塞:
var http = require('http');var fs = require('fs');var server = http.createServer(function (request, response) {// 发送 HTTP 头部 // HTTP 状态值: 200 : OK// 内容类型: text/plain//response.writeHead(200, {'Content-Type': 'text/html;charset=UTF8'});var data = fs.readFile('D:/Documents/HBuilderProject/nodejs/js/input.txt', function (err, data){if (err) return console.error(err);console.log(data.toString());});console.log("程序执行结束!");response.end('这是测试堵塞代码实例!\n');}); server.listen(8892,'127.0.0.1');// 终端打印如下信息console.log('Server running at http://127.0.0.1:8892/');
区别一:堵塞引用的文件fs.readFileSync与非堵塞引用的文件fs.readFile.
区别二:第一个实例(堵塞)在文件(此指的是input.txt)读取完后才执行完程序。 第二个实例(非堵塞)我们呢不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。如下图:
讲个通俗易懂的例子:
非堵塞:A去餐厅吃饭,服务员拿着菜单准备给A点菜,这时B进来,服务见看到了,这时服务员叫A先看下菜单,马上去招待B坐下让B看下要点什么菜,为B点完菜后结束后,再来为A点菜。
堵塞:必须为A服务完之后,再去服务B,大大的消耗性能
注意点:1、此几个文件都可以直接复制到直接执行此处的端口可以自己随意定。
` <nodejs是单线程的>
2、页面的访问路径如下,您可以对比以上代码,可以得出结论:
如果大家遇到相同问题,欢迎与我交流,我的QQ:542601041,哈哈,下班!下班!
0 0
- nodejs中的阻塞与非堵塞的区别
- nodejs 阻塞与非阻塞
- nodejs中的阻塞代码与非阻塞代码
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- socket阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- Socket阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 阻塞与非阻塞的区别
- 多线程知识点梳理一:同步异步与阻塞非堵塞
- 《Java8 Stream介绍》
- ios 学习之 NSPredicate 模糊、精确、查询
- CVPR 2016-12-02
- 153. Find Minimum in Rotated Sorted Array--Array--LeetCode--C++
- c++容器使用经验总结
- nodejs中的阻塞与非堵塞的区别
- 学习Java必看书籍和步骤
- VR系列——Oculus Audio sdk文档:五、Wwise集成Oculus声场定位指南(3)——声音的特性、整合Oculus Spatializer及OSP版本在Wwise中的迁移
- ImportError: No module named cv2
- mysql 时间转换
- JVM调优总结(2):调优方法
- php开启错误提示(详解)
- arcengine Icommand
- 压缩感知入门--论文解读 1.Compressive Sensing by Richard G. Baraniuk