tgoop.com/we_use_js/4206
Create:
Last Update:
Last Update:
worker_threads
— это модуль в Node.js, который позволяет создавать дополнительные потоки для выполнения задач параллельно с основным потоком. Он особенно полезен для вычислительно затратных операций, которые могут блокировать выполнение кода в основном потоке событий.
const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
// Главный поток
console.log('Главный поток запущен');
const worker = new Worker(__filename); // Создаем воркер
worker.on('message', (msg) => {
console.log('Результат от воркера:', msg);
});
worker.postMessage('Начать расчет'); // Передаем сообщение воркеру
} else {
// Воркер
parentPort.on('message', (msg) => {
console.log('Сообщение от главного потока:', msg);
// Выполняем тяжелый расчет
const result = Array(1e6).fill(0).reduce((acc, _, i) => acc + i, 0);
parentPort.postMessage(result); // Отправляем результат обратно
});
}
🗣️ В этом примере главный поток создает воркер, который выполняет вычисление суммы чисел, не блокируя основной поток. Это позволяет использовать многопоточность в JavaScript для высоконагруженных операций.