Встречается на собеседованиях • сегодня

Как сделать JS многопоточным

JavaScript однопоточен, но можно использовать Web Workers для выполнения тяжелых задач в фоновом потоке. Они работают в отдельном контексте и не блокируют основной поток UI.

Пример создания воркера:

js
// main.js
const worker = new Worker('worker.js');

worker.postMessage({ data: 'some data' });

worker.onmessage = (e) => {
console.log('Message from worker:', e.data);
};

text

```js
// worker.js
self.onmessage = (e) => {
  const result = heavyCalculation(e.data);
  self.postMessage(result);
};

Ограничения:

  • Нет доступа к DOM
  • Ограниченный доступ к API (например, нет localStorage)
  • Обмен данными только через postMessage

Для параллельных вычислений можно использовать SharedArrayBuffer (с осторожностью из-за Spectre).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы