Một máy chủ Node.js đơn giản là đơn luồng, có nghĩa là bất kỳ hoạt động mà phải mất một thời gian dài để thực hiện sẽ chặn phần còn lại của chương trình của bạn chạy. Các ứng dụng Node.js quản lý để duy trì mức độ đồng thời cao bằng cách làm việc như một loạt các sự kiện. Khi một trình xử lý sự kiện đang chờ đợi một điều gì đó xảy ra (chẳng hạn như đọc từ cơ sở dữ liệu), nó bảo Node tiếp tục và xử lý một sự kiện khác trong thời gian chờ đợi. Nhưng vì một luồng đơn lẻ chỉ có thể thực hiện một lệnh tại một thời điểm, cách tiếp cận này không thể giúp bạn tiết kiệm từ một hàm cần phải tiếp tục hoạt động tích cực trong một thời gian dài. Trong một kiến trúc đa luồng, ngay cả khi một hàm mất một thời gian dài để tính kết quả, các luồng khác vẫn có thể xử lý các yêu cầu khác - và miễn là bạn có một lõi không được sử dụng đầy đủ vào thời điểm đó, có một cơ hội tốt mà chúng có thể làm nó nhanh như thể không có yêu cầu nào khác đang chạy.
Để giải quyết vấn đề này, các ứng dụng Node.js sản xuất dự kiến sẽ tốn nhiều CPU sẽ thường được chạy theo cụm. Điều này có nghĩa là thay vì có một số luồng trong không gian bộ nhớ của một chương trình, bạn chạy một vài phiên bản của cùng một chương trình dưới sự kiểm soát của một cá thể "chính". Mỗi quá trình là đơn luồng, nhưng vì bạn có một số trong số họ, bạn sẽ đạt được những lợi ích của nhiều chủ đề.
Bất kể sự thật của nó là gì; bạn đã chọn yêu cầu này ở đâu? Tại sao bạn nghĩ rằng đây là trường hợp? – poke
Nếu bạn * biết * rằng nó không phải, sau đó bạn nên * biết * tại sao nó không. Nếu không, bạn chỉ vẫy ý kiến của người khác. – meagar
Tôi đọc ở đây [Felix Baumgarten] (http://nodeguide.com/convincing_the_boss.html) – vuvu