小编Sun*_*Qee的帖子

关于nodejs线程的一些困惑

我对nodejs线程有一些疑惑.

据我所知,nodejs是在单个线程中运行.如果调用了异步函数,nodejs则会创建一个新线程来运行这些异步代码.异步代码完成后.event loop将获得异步结果并在另一个新线程中触发回调函数.

为了测试,我进行了以下代码测试:

var fs = require("fs");

fs.readFile('package.json','utf-8', function (err, data) {
    if(err)
        console.log(err)
    else
        console.log(data);
});

console.log("before loop");
while(true);
console.log("after loop");
Run Code Online (Sandbox Code Playgroud)

我的预期结果是:

在循环之前
- - package.json内容 - -

实际得到:

在循环之前

在某些地方我可能错了.

问题:

  1. 为什么while(true)阻止readFile()或阻止它的回调函数?
  2. 这些线程之间的关系是什么?

asynchronous node.js

1
推荐指数
1
解决办法
107
查看次数

标签 统计

asynchronous ×1

node.js ×1