Junior — Middle
Pode explicar o que são os Worker Threads no Node.js e como eles são usados para multitarefa?
sobes.tech IA
Resposta da IA
No Node.js, os Worker Threads são um módulo que permite criar threads separados para executar código JavaScript em paralelo com o thread principal. Por padrão, o Node.js funciona em modo de thread única, o que é bom para operações de entrada/saída, mas ineficiente para tarefas intensivas de CPU.
Os Worker Threads criam threads completos que podem realizar cálculos sem bloquear o ciclo de eventos principal. Eles comunicam-se com o thread principal através de mensagens (postMessage e on('message')).
Exemplo de uso:
const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
const worker = new Worker(__filename);
worker.on('message', msg => console.log('Do worker:', msg));
worker.postMessage('Olá, worker!');
} else {
parentPort.on('message', msg => {
parentPort.postMessage(`Recebido: ${msg}`);
});
}
Dessa forma, os Worker Threads permitem paralelizar tarefas de forma eficiente no Node.js, melhorando o desempenho em cálculos.