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