Back to questions
Junior — Middle
108
Использовал ли ты многопоточность или параллельные возможности в Node.js для повышения производительности?
Answer from AI
sobes.tech AI
В Node.js многопоточность реализуется через модуль worker_threads, который позволяет запускать JavaScript-код в отдельных потоках, что полезно для CPU-интенсивных задач. Также можно использовать кластеры (cluster), чтобы запускать несколько процессов Node.js, эффективно используя многоядерные процессоры.
Пример использования worker_threads:
const { Worker } = require('worker_threads');
function runService(workerData) {
return new Promise((resolve, reject) => {
const worker = new Worker('./worker.js', { workerData });
worker.on('message', resolve);
worker.on('error', reject);
worker.on('exit', (code) => {
if (code !== 0)
reject(new Error(`Worker stopped with exit code ${code}`));
});
});
}
runService({ some: 'data' }).then(result => {
console.log('Result from worker:', result);
}).catch(err => {
console.error(err);
});
Таким образом, для повышения производительности в задачах, требующих параллельных вычислений, можно использовать worker_threads или cluster. Для I/O задач обычно хватает асинхронности, встроенной в Node.js.