mediumLow-Level Design

Explain the differences between fork(), spawn(), and exec() in the child_process module.

762 views
01

Understand the problem

Contrast the three primary ways to spawn child processes in Node.js.

child-processconcurrencyperformance
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

All three
import { spawn, exec, fork } from 'node:child_process';

// spawn: stream output
const ls = spawn('ls', ['-la']);
ls.stdout.on('data', d => process.stdout.write(d));

// exec: buffer to callback (beware maxBuffer + shell injection)
exec('git rev-parse HEAD', (err, stdout) => console.log(stdout.trim()));

// fork: run a Node script with IPC
const child = fork('./worker.js');
child.send({ task: 'crunch' });
child.on('message', (msg) => console.log('from child:', msg));
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.