Вопросы к Поиску с Алисой
Разница между однопоточным выполнением JavaScript и многопоточностью Java заключается в способе обработки задач.
JavaScript изначально задумывался как однопоточный язык программирования. otus.ru Это значит, что в одном и том же процессе обрабатывается единственный набор инструкций. otus.ru Обычно в Node.js или в браузерах весь код на JavaScript выполняется в одном потоке. habr.com Задачи из очереди одна за другой выполняются единственным потоком, потому что приложения JavaScript пользуются преимуществами асинхронного выполнения. habr.com
Java поддерживает многопоточность, то есть возможность выполнять несколько операций одновременно. zhukovsd.github.io proglib.io В Java создаётся множество потоков, каждый из которых отправляет один запрос. habr.com После создания оптимального количества потоков внутренний пул потоков больше не может создавать новые потоки. habr.com Несколько созданных потоков ждут ответов. habr.com После поступления ответов создаются новые потоки для отправки новых запросов. habr.com И этот процесс повторяется, пока не будут отправлены все запросы. habr.com
Теоретически многопоточные приложения должны быть более производительными, чем однопоточные, но на практике это не всегда так. habr.com Например, если развёрнутое веб-приложение выполняет операции ввода-вывода, то многопоточность по большей мере теряет смысл, поскольку доступ к файловой системе — это узкое «бутылочное горлышко». habr.com