JavaScript — однопоточный? Да, но это не приговор! Когда-то JS мог делать только одну операцию за раз, из-за чего сложные вычисления "замораживали" интерфейс. Но сегодня Web Workers, SharedArrayBuffer и другие технологии позволяют запускать параллельные вычисления прямо в браузере! В этой статье разберём: JavaScript создавался для простых скриптов в браузере, где: Event Loop спасает, но не решает всех проблем: Вывод: Вывод: setTimeout не делает код асинхронным — он лишь откладывает выполнение, но если главный поток занят, колбэк ждёт! Workers — это отдельные JS-потоки, которые работают параллельно с основным. 2. main.js ❌ Нет доступа к DOM (нельзя изменить HTML напрямую).
❌ Нет window, document (но есть self и fetch).
❌ Обмен данными только через postMessage (копирование, а не общая память). Если Workers копируют данные (медленно), то SharedArrayBuffer позволяет потокам работать с одной областью памяти: ⚠️ Важно: ✔️ Web Workers — для долгих вычислений без DOM.
✔️ SharedArrayBuffer — ес