Вопрос проверяет понимание работы Worker Threads, передачи данных между потоками и эффективности при I/O операциях.
Worker Threads позволяют выполнять CPU-интенсивные задачи без блокировки основного потока. Данные передаются через копирование или SharedArrayBuffer. Для I/O операций лучше использовать асинхронные методы, так как Worker Threads оптимизированы для вычислений.
Worker Threads — это механизм для выполнения JavaScript кода в отдельных потоках.
Преимущества:
Выполнение CPU-интенсивных задач без блокировки event loop
Использование многопроцессорных систем
Изоляция тяжелых вычислений от основного потока
Передача данных:
Копирование данных: По умолчанию данные копируются между потоками
SharedArrayBuffer: Позволяет разделять память между потоками
MessageChannel: Для двусторонней коммуникации
const { Worker } = require('worker_threads');
const worker = new Worker(`
const { parentPort } = require('worker_threads');
parentPort.on('message', (data) => {
// Обработка данных
parentPort.postMessage(result);
});
`);
worker.postMessage({ data: 'test' });I/O операции:
Worker Threads не оптимизированы для I/O
Лучше использовать асинхронные методы основного потока
Подходят для CPU-интенсивных операций, а не I/O