Chapter 1 : Node 簡介
Node的特點:
- 非同步 (Asynchronous) I/O
- 事件 (Events) 與回呼函數 (Callback functions)
- 單執行緒 (Single thread)
- 優點:
- 不用像多執行緒那般處處在意狀態的同步問題
- 不會有鎖死 (deadlock) 的情況
- 沒有執行緒上下文交換 (content switch) 時帶來的額外性能代價
- 缺點:
- 無法利用多核 CPU
- 錯誤會引起整個應用程式退出 (crash?),值得一再考驗其健壯性
- 大量計算佔用 CPU,導致無法繼續呼叫非同步 I/O
Node 採用和 Html5 的 Web Workers 相同概念來解決單執行緒中大量計算的問題:child_process
- 優點:
- 跨平台
Node的應用場景
- I/O 密集型
- 是否不擅長 CPU 密集型
適當調整和分解大型運算為多個小任務,便能讓運算適時釋放,不阻塞 I/O 呼叫的啟動,這樣既可同時享受並行非同步 I/O 的好處,又能充分利用 CPU。
- 與就有系統和平共存
- 分散式應用