nodejs лучше Java?” Я привёл следующий аргумент:
«Java - много запросов = много потоков
Nodejs - много запросов = один поток»
На что получил возражение:
«— кто же мешает делать пулинг ._.»
После чего возник ряд вопросов:
1) Пулинг всмысле пулинг потоков ? Для чего ? Каждый поток ведь - дополнительная оперативная память (ну и плюс переключение контекстов)
2) А разве не смысл node.js в том что асинхронное программирование на нём проще ? Чем делать пулы, заниматься thread менеджментом и т.д. ?
Помогите пожалуйста разобраться с этими вопросами?
поток на каждое подключение - это бездействие процессора при каждой операции ввода/вывода. Нода же использует один поток и загружает процессор максимально. Но и асинхронное программирование нельзя назвать простым, наверное)
Если очень много запросов, то им придётся ждать освобождения потока из пулла и они просто могут начать отваливаться по таймауту.
это разные инструменты просто с различными подходами и экосистемами. Где-то их задачи пересекаются где-то нет. сравнивать без контекста конкретной задачи смысла нет. Экосистема JVM просто гигантская, есть решения даже вдохновленные нодой, где все через эвент луп и просто писать асинхронщину - vertx, например.
Обсуждают сегодня