Итак, мне недавно был добавлен вирус Node, который очень быстро распространяется в мире программирования.
Я очарован этим "Неблокирующимся IO" и действительно попробовал пару программ самостоятельно.
Тем не менее, я не понимаю некоторых концепций на данный момент.
Мне нужны ответы в условиях неспециалиста (кто-то из фона Java)
1. Многопоточность и неблокирование IO.
Рассмотрим практический сценарий. Скажем, у нас есть сайт, на котором пользователи могут зарегистрироваться. Ниже будет код.
..
..
// Read HTTP Parameters
// Do some Database work
// Do some file work
// Return a confirmation message
..
..
В традиционном языке программирования вышеуказанное происходит последовательно. И, если есть несколько запросов на регистрацию, веб-сервер создает новый поток, а остальная часть - история. Конечно, программисты могут создавать собственные потоки для работы в Line 2 и Line 3 одновременно.
В Node, как я понимаю, строки 2 и 3 будут выполняться параллельно, в то время как остальная часть программы будет выполнена, а интерпретатор проверяет строки 2 и 3 каждые "х" мс.
Теперь, на мой вопрос, если Node - это один поток, то что делает работа строк 2 и 3 в то время как остальная часть программы выполняется?
2. Масштабируемость
Недавно я прочитал, что LinkedIn адаптировал Node как вспомогательный сервер для своих мобильных приложений и видел значительные улучшения.
Может кто-нибудь объяснить, как это повлияло?
3. Адаптация в других языках программирования
Если люди утверждают, что Node имеет большое значение, когда дело доходит до производительности, почему другие языки программирования не адаптировали эту неблокирующую парадигму IO?
Я уверен, что я что-то упустил. Только если вы сможете объяснить мне и направить мне некоторые ссылки, было бы полезно.
Спасибо.