Назад к вопросам
Junior — Middle
107
Можете объяснить, что такое Worker Threads в Node.js и как они используются для многопоточности?
Ответ от нейросети
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, улучшая производительность при вычислениях.