作者OrO3 (OrO3)
看板Ajax
標題[node] 請問有沒有辦法寫一個非阻塞的function
時間Sun Dec 6 22:06:48 2015
node.js採用事件驅動模式
在語言以及標準庫當中用了很多非阻塞的function
例如寫入檔案時
fs.appendFile()
那我想請問,有沒有辦法自己建立一個這種,非阻塞的function ?
像是叫他算個東西,算完在再丟上來,而不要佔用主執行緒之類的
像是
function count(callback){
//算一些很浪費時間的東西
callback(500);
}
console.log("start");
count(function(ans){
console.log("ans:"+ans);
});
console.log("end");
會顯示
start
end
ans:500
(沒阻塞在count)
而不是
start
ans:500
end
(阻塞在count)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.80.3
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1449410811.A.A16.html
1F:→ mmis1000: 利用 child_process 可以辦到 12/06 22:36
2F:→ mmis1000: 可以把需要計算的東西丟到子程序計算 12/06 22:37
3F:→ mmis1000: 不過用node.js跑需要大量計算的東西其實本來就不是很 12/06 22:37
4F:→ mmis1000: 適合 12/06 22:37
5F:→ OrO3: 原來如此 12/06 22:55
6F:推 mrbigmouth: fibers 不過fibers在比較新的node.js版本好像有問題? 12/07 16:56
7F:→ mmis1000: fibers 貌似還是跑在主thread上阿,load太大還是會影響 12/07 22:18
8F:→ mmis1000: 到主程式 12/07 22:18