> Куда пойдет выполнение при конкурентном запуске нескольких задач в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Black Wall Group (BWG)

Стек: JavaScript

> Пример ответа

В JavaScript (в среде браузера или Node.js) выполнение кода происходит в одном потоке с использованием цикла событий (Event Loop). При конкурентном запуске нескольких задач (например, через setTimeout, Promise, async/await или Web Workers) они не выполняются параллельно в одном потоке, а ставятся в очередь микрозадач или макрозадач. Выполнение пойдет в порядке, определяемом приоритетами: сначала синхронный код, затем все микрозадачи (например, обработчики Promise.then), и только потом макрозадачи (например, setTimeout, setInterval). Если используются Web Workers, то их код выполняется в отдельном потоке, не блокируя основной. Таким образом, конкурентный запуск в одном потоке означает, что задачи переключаются, но не выполняются одновременно, за исключением Worker'ов.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью