Có hay không "chặn" phụ thuộc vào định nghĩa của bạn về "chặn". Thông thường block có nghĩa là CPU của bạn về cơ bản là nhàn rỗi, nhưng thread hiện tại không thể làm bất cứ điều gì với nó bởi vì nó đang chờ I/O hoặc tương tự. Đó là loại điều không có xu hướng xảy ra trong node.js trừ khi bạn sử dụng các chức năng I/O đồng bộ không được khuyến nghị. Thay vào đó, các hàm trả về một cách nhanh chóng và khi nhiệm vụ I/O mà chúng bắt đầu hoàn thành, hàm gọi lại của bạn được gọi và bạn lấy nó từ đó. Trong thời gian này, các yêu cầu khác có thể được xử lý.
Nếu bạn đang làm một cái gì đó tính toán nặng trong nút, không có gì khác sẽ có thể sử dụng CPU cho đến khi nó được thực hiện, nhưng vì một lý do rất khác nhau: CPU thực sự bận rộn. Thông thường, đây không phải là những gì mọi người có ý nghĩa khi họ nói "chặn", thay vào đó, nó chỉ là một tính toán dài.
200ms là một thời gian dài cho việc cần thực hiện nếu nó không liên quan đến I/O và hoàn toàn là tính toán. Đó có lẽ không phải là thứ bạn nên làm trong nút, thành thật mà nói. Một giải pháp nhiều hơn trong tinh thần của nút sẽ là có loại đó crunching xảy ra trong một (không javascript) chương trình được gọi là bởi nút, và gọi callback của bạn khi hoàn thành. Giả sử bạn có một máy đa lõi (hoặc chương trình khác đang chạy trên một máy tính khác), nút có thể tiếp tục đáp ứng các yêu cầu trong khi chương trình khác lại bị bẻ khóa.
Có những trường hợp cụm (như những người khác đã đề cập) có thể hữu ích, nhưng tôi nghi ngờ bạn thực sự là một trong số đó. Các cụm thực sự được tạo ra khi bạn có rất nhiều và rất nhiều yêu cầu cùng nhau nhiều hơn một lõi của CPU có thể xử lý, không phải cho trường hợp bạn có các yêu cầu đơn lẻ mất hàng trăm mili giây.
Có một lời giải thích tuyệt vời [ở đây] (http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/) về cơ bản những gì bạn đã nói, nhưng giải thích thêm một chút. –