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 и подобряват производителността при изчисления.