> Куда пойдет выполнение при конкурентном запуске нескольких задач в 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'ов.
> Похожие задачи по frontend
В чем разница между filter и slice для удаления элементов в JavaScript?
Что такое директива 'use strict' в JavaScript и как она влияет на код
Что происходит при проверке статуса Promise в JavaScript, если он может выполниться раньше?
Почему метод shift мутирует массив и как сделать удаление первого элемента иммутабельно в JavaScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью