600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 理解Node.js的异步非阻塞I/O模型

理解Node.js的异步非阻塞I/O模型

时间:2019-09-10 21:38:27

相关推荐

理解Node.js的异步非阻塞I/O模型

对后台服务器编程不清楚,通过在网上查资料也就大概有写了解。

Apache对并发请求的处理方式是,对每个请求就创建一个线程处理,这个线程是堵塞的。因为线程的是占用内存的,所以一台服务器能支持的并发线程量是有限的。

node.js是单线程的模型,但是线程是异步非堵塞的

比如下面的例子:

var fs = require("fs");fs.readFile("./testfile", "utf8", function(error, file) { if (error) throw error; console.log("我读完文件了!");});console.log("我不会被阻塞!");

复制上面代码保存为test.js,并在同一目录下新建一个名为testfile的文件,用node命令运行test.js,你将看到以下输出:

我不会被阻塞!

我读完文件了!

这显然不符合传统的程序执行顺序,注意,这就是Node.js的非阻塞I/O了。

进行I/O操作,给readFile绑定一个回调函数function(error,file){},并在读取testfile完成后执行回调函数。期间,后面的代码继续执行,不受I/O阻塞。

这就是为什么先看到“我不会被阻塞!”而后看到“我读完文件了!”的缘故。

参考:

/topic/4f50dd9798766f5a610b808a

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。