AI编程助手
AI免费问答

node.js - NodeJS异步机制的疑惑

问题描述:大家都知道nodejs因为其异步编程和事件机制而被大家津津乐道,但是最近在学习nodejs时对nodejs的异步不是很理解。都说nodejs是单进程单线程的,但是它的异步处理又给人的感觉是多线程的,比如下面的例子:

var fs = require("fs");

var data = fs.readFileSync('input.txt');//同步等待执行,这必然是单线程

console.log(data.toString());
console.log("程序执行结束!");

但是,它还有异步方式是这样处理:

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {//异步执行,这个地方没有等待执行结束就已经打印了"程序执行结束",然后打印data数据
    if (err) return console.error(err);
    console.log(data.toString());
});

console.log("程序执行结束!");

希望大神们帮忙解释一下,总感觉它异步是多线程方式,而nodejs确实单进程单线程的?

# Node.js
PHP中文网 PHP中文网 2998 天前 967 次浏览

全部回复(7) 我要回复

暂无回复
  • 取消 回复 发送