Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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('От работника:', msg));
  worker.postMessage('Здрасти, работник!');
} else {
  parentPort.on('message', msg => {
    parentPort.postMessage(`Получено: ${msg}`);
  });
}

По този начин, Worker Threads позволяват ефективно паралелизиране на задачи в Node.js и подобряват производителността при изчисления.