0
考慮以下例子:(假定快車是可用的)的NodeJS Parallesim瞭解
實施例1:
app.get("/a", function(res){
// Some-Blocking function for 10 seconds
res.send("done");
});
app.get("/b", function(res){
res.send("done");
});
在這個例子中,如果/一個第一次被請求,則1秒後/ B ;/b在/ a完成之前未處理?如果它是一個線程,它應該是。那麼消除這個問題的方法是什麼?
實施例2:
app.get("/a", function(res){
// Some-Library-Database function
db.find({"user.id" : 5}, function(data){
res.send(data);
});
});
app.get("/b", function(res){
res.send("done");
});
再次/請求了這樣它進入功能,db.find調用,所以當db.find完成時,回調執行res.send(數據) A.因此,我們可以在不等待/請求的情況下回應/對,對吧? (如果我錯了,請糾正我)
那麼,我們又怎樣才能實現例1中的例2呢?我們是否可以使該阻塞函數也可以運行異步?或者是DB在做IO(通過TCP向服務器發送命令等)使該功能異步?我的意思是,在nodejs中,唯一的異步是IO嗎?如果需要大量計算,我們是否必須提出IO請求?
我想學習和建立根據的概念。我已閱讀NodeJS is cancer帖子閱讀有關節點的批評,不知道他是否只是拖釣。
順便說一句,如果你有什麼「堵持續10秒」,它要麼是由於阻塞的IO(最可能是你有非阻塞節點替代)或CPU綁定任務(可能它是值得重寫的東西像C/C + +) – 2012-02-12 01:04:13
該鏈接似乎被打破 – Annan 2012-12-24 23:15:36