Node.jsPytanie 14 z 26
fork vs spawn
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Obie funkcje tworzą proces potomny. spawn uruchamia dowolny program, a fork jest wyspecjalizowane do uruchamiania modułu Node z kanałem komunikacji IPC.
JavaScript
import { spawn, fork } from 'node:child_process';
const processA = spawn(process.execPath, ['--version']);
processA.stdout.on('data', chunk => console.log(chunk.toString()));
processA.on('error', console.error);
// Wymaga istniejącego pliku worker.js
const worker = fork('./worker.js');
worker.on('error', console.error);
worker.send({ task: 'report' });Pułapka: fork() w Node nie klonuje pamięci procesu jak uniksowy syscall o tej nazwie. Procesy mają własną pamięć. Do współpracy w jednym procesie służą m.in. worker threads.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.