Vì vậy, gần đây tôi đã được tiêm virus Node đang lan truyền trong thế giới lập trình rất nhanh.Hiểu NodeJS & Non-Blocking IO
Tôi bị cuốn hút bởi phương pháp "Không chặn khối IO" và thực sự đã tự mình thử một vài chương trình.
Tuy nhiên, tôi không hiểu các khái niệm nhất định tại thời điểm này.
tôi cần câu trả lời trong điều kiện của giáo (người đến từ một nền tảng Java)
1. Đa luồng & Non-Blocking IO.
Hãy xem xét một kịch bản thực tế. Giả sử, chúng tôi có một trang web nơi người dùng có thể đăng ký. Dưới đây sẽ là mã.
..
..
// Read HTTP Parameters
// Do some Database work
// Do some file work
// Return a confirmation message
..
..
Trong ngôn ngữ lập trình truyền thống, ở trên xảy ra theo cách tuần tự. Và, nếu có nhiều yêu cầu đăng ký, máy chủ web sẽ tạo một chuỗi mới và phần còn lại là lịch sử. Tất nhiên, các lập trình viên có thể tạo ra các chủ đề của riêng mình để làm việc trên Line 2 và Line 3 cùng một lúc.
Trong nút, như tôi đã hiểu, các dòng 2 & 3 sẽ được chạy song song trong khi phần còn lại của chương trình được thực hiện và Bộ thông dịch thăm dò các dòng 2 & 3 mỗi 'x' ms.
Bây giờ, câu hỏi của tôi là, nếu Node là một ngôn ngữ đơn luồng, công việc của các dòng 2 & 3 trong khi phần còn lại của chương trình đang được thực hiện là gì?
2. Khả năng mở rộng
Gần đây tôi đọc mà LinkedIn đã thích nghi Node như một back-end for Mobile Apps của họ và đã thấy những cải tiến lớn.
Có ai có thể giải thích cách nó đã tạo ra sự khác biệt như vậy không?
3. Thích ứng trong ngôn ngữ lập trình khác
Nếu mọi người đang tuyên bố rằng Node được làm cho rất nhiều sự khác biệt khi nói đến hiệu suất, tại sao không có ngôn ngữ lập trình khác thích nghi này Non-Blocking IO mô ?
Tôi chắc chắn tôi đang thiếu thứ gì đó. Chỉ khi bạn có thể giải thích cho tôi và hướng dẫn tôi với một số liên kết, sẽ hữu ích.
Cảm ơn.
Tôi rất khuyên bạn nên xem trình bày ban đầu bằng cách Ryah Dahl (http://www.youtube .com/watch? v = ztspvPYybIY) trả lời tất cả câu hỏi của bạn. –
Cảm ơn Pradeep. Nó đã giúp rất nhiều. –