Node.js › Clustering & Worker Threads
How do you use SharedArrayBuffer to share memory directly between Node.js worker threads, and what are the safety considerations?
AdvancedAnswer
SharedArrayBuffer allocates memory multiple worker threads can access directly without copying -- writes from one thread are immediately visible to others, requiring careful synchronization via Atomics to avoid race conditions from concurrent unsynchronized writes.
const sab = new SharedArrayBuffer(4);
const sharedArray = new Int32Array(sab);
Atomics.add(sharedArray, 0, 1);
console.log(Atomics.load(sharedArray, 0));Real-world example A parallel computation service divides a matrix operation across four worker threads reading/writing different slices of the same SharedArrayBuffer, avoiding the overhead of copying data via message passing.