还是对于非阻塞的IO感兴趣。知道node的非阻塞IO用法,知道回调函数的方式,但是现在我想知道这里面是怎么实现的。一行一行的代码肯定是顺序执行的,上一行代码执行的任务没有完成,怎么可以执行下一行代码呢?其实我想知道这种非阻塞回调的内部原理是什么?不知道其他语言是不是也有这样的类似的用法。反正对于这种方式的实现,很想知道内部的实现原理是什么?
已经写过这方面的文字。但是还没有发表出来 - -
我刚看完这篇文章的,它只是说了怎么用,演示了一下效果,但是并没有说明内部怎么实现的。
linux下,你想了解实现,可以先看看epoll。
正找着epoll,这才是我要的答案啊……
@cloudaice Linux和BSD沒有原生的異步I/O機制,但有近似於異步I/O的實現如epoll, kqueue等。Windows和Solaris支持真正的異步,即IOCP。
var fs = require(“fs”);
fs.readFile("./testfile", “utf8”, function(error, file) {
if (error) throw error;
console.log(“我读完文件了!”);
});
console.log(“我不会被阻塞!”);
这个readFile函数的功能可以实现Node.js下的异步读取文件,基于此,可以不可以写个类似readFile的函数(如operateCRUD)来实现相关数据库的操作?这样的话是不是不同请求(C,R,U,D)之间就不会阻塞了?谢谢~