How do I pass large data to a worker thread in Node.js?
Use postMessage to send data, which copies it by default. For large data, use SharedArrayBuffer for zero-copy sharing between the main thread and workers, which avoids the overhead of copying.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in How to Use Worker Threads in Node.js for CPU-Heavy Work
Import { Worker } from 'worker_threads', create a new Worker with a file path, communicate via postMessage and on('message'), handle errors with the 'error' event, and use SharedArrayBuffer for zero-copy large data sharing.
For heavy CPU computation: image processing, cryptographic computation, large data processing, machine learning inference. Anything that takes more than a few milliseconds of synchronous CPU time should be offloaded to keep the event loop free.
For I/O-bound work. Async APIs (fs.readFile, fetch, database queries) already keep the event loop free. Using worker threads for I/O adds overhead without benefit, since the I/O is delegated to libuv anyway.
Still have questions?
Browse all our FAQs or reach out to our support team
