Offload functions to worker threads with shared memory primitives for Node.js.
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

1// Process a batch of work items in parallel using a worker pool. 2// Compares sequential (dedicated worker) vs parallel (pool) execution. 3// Requires Node v24+. 4// 5// Run: node examples/parallel-batch/main.ts 6 7import { workers } from '../../src/index.ts'; 8import { heavyWork } from './heavy-work.ts'; 9 10const items = Array.from({ length: 20 }, (_, i) => i + 1); 11 12// Sequential: each call awaits on the dedicated worker 13console.log('Sequential (dedicated worker)...'); 14const seqStart = performance.now(); 15const seqResults = []; 16for (const item of items) { 17 seqResults.push(await heavyWork(item)); 18} 19const seqTime = (performance.now() - seqStart).toFixed(0); 20console.log(` ${items.length} items in ${seqTime}ms\n`); 21 22// Parallel: distribute across a pool of 4 workers 23let parTime: string; 24console.log('Parallel (worker pool, 4 workers)...'); 25{ 26 using run = workers(4); 27 const parStart = performance.now(); 28 const parResults = await Promise.all(items.map((item) => run(heavyWork(item)))); 29 parTime = (performance.now() - parStart).toFixed(0); 30 console.log(` ${items.length} items in ${parTime}ms\n`); 31} 32 33console.log(`Speedup: ~${(Number(seqTime) / Number(parTime)).toFixed(1)}x`);