const cluster = require('cluster');
const numberOfWorkers = require('os').cpus().length;
const hugeData = [];
 
for (let i= 0; i < 50000; i++){
    i2 = Math.round(Math.random() * 5000);
    hugeData.push(i2)
}

if (cluster.isMaster) {
    const eachWorkerDataProceed = Math.floor(hugeData.length / numberOfWorkers);
    let sortedArrayCount = 0, sortedArrays = [];
    for (let i = 0; i < numberOfWorkers; i++) {
        const worker = cluster.fork();

        worker.on(&#039;message&#039;, (data) => {
            sortedArrayCount++;
            sortedArrays.push(data)
            if (sortedArrayCount == numberOfWorkers) {
                console.log(&#039;all data done&#039;, sortedArrays)
                // now can merge all sorted arrays
            }
        })

        // send data to workers
        worker.send(hugeData.slice(i * eachWorkerDataProceed, (i + 1) * eachWorkerDataProceed))

    }
} else {
    // cluster.isWorker == true, `process` in here refers to current worker
    process.on(&#039;message&#039;, (data) => {
        // send data to master process
        process.send(data.sort())
        // be careful that kill worker when it has been finished
        process.kill(process.pid)
    })

}

Add a code snippet to your website: www.paste.org