Sobes.tech
Back to questions
Junior — Middle
106

Можете объяснить, что такое Worker Threads в Node.js и как они используются для многопоточности?

Answer from AI

sobes.tech AI

В Node.js Worker Threads — это модуль, который позволяет создавать отдельные потоки для выполнения JavaScript-кода параллельно с основным потоком. По умолчанию Node.js работает в однопоточном режиме, что хорошо для ввода-вывода, но неэффективно для CPU-интенсивных задач.

Worker Threads создают полноценные потоки, которые могут выполнять вычисления без блокировки основного цикла событий. Они общаются с главным потоком через сообщения (postMessage и on('message')).

Пример использования:

const { Worker, isMainThread, parentPort } = require('worker_threads');

if (isMainThread) {
  const worker = new Worker(__filename);
  worker.on('message', msg => console.log('От worker:', msg));
  worker.postMessage('Привет, worker!');
} else {
  parentPort.on('message', msg => {
    parentPort.postMessage(`Получено: ${msg}`);
  });
}

Таким образом, Worker Threads позволяют эффективно распараллеливать задачи в Node.js, улучшая производительность при вычислениях.