【发布时间】:2013-02-06 02:02:12
【问题描述】:
我对 Node.js 技术有一个基本的困惑。让我用这个小例子来解释一下。
我有这段代码
setTimeout(function (){
console.log('world');
}, 2000);
console.log('hello');
当我开始执行这段代码时,它会立即打印出 'hello' 并在 2 秒后打印出 'world'。
现在我只想知道,如果说 node.js 是单线程框架,那么这个 setTimeout 函数在哪个上下文或在哪里(线程/进程)执行,因为唯一的单线程正在执行剩余的代码(印刷世界)。
在像 DB hit 这样的 I/O 调用的情况下,node.js 使用 Libeio,而后者又在内部使用线程。所以它根本不是单线程的。
我说的对吗?
请提出建议。
谢谢
【问题讨论】:
标签: node.js