Nejlepší odpověď
Umístěním se spouští další proces a poté pokračuje proces, který provedl rozmnožování.
Vidlice je specifický mechanismus Unix / Posix, který lze použít k reprodukci. Forking produkuje dvě téměř identické verze stejného procesu. „Skoro“, protože procesy dokáží zjistit, zda se jedná o původní nebo vidlicovou verzi. Mohli potom pokračovat, dělat různé věci podle toho, o jaké znalosti se jedná, ale nejběžnější věcí je okamžitě získat jeden z instance, aby se nahradila jiným procesem, což má stejný účinek jako tření. To ale nemáte – logika pro oba úkoly by mohla být obsažena v jednom procesu.
Odpověď
Process.fork vám umožňuje spustit rubínový kód v jiném procesu. Process.spawn umožňuje spustit jiný program v jiném procesu. V zásadě je Process.spawn jako používat Process.fork a poté volat exec ve vidlicovém procesu, kromě toho, že vám dává více možností.
a který je lepší spustit jiný program v podprocesu?
Pokud potřebujete zpětnou kompatibilitu, použijte fork + exec, protože spawn není k dispozici v 1.8. Jinak použijte spawn, protože spuštění jiného programu v podprocesu je přesně to, pro co je spawn vytvořen.
Pokud vím, Process.fork přijímá blok kódu a Process.spawn přebírá systémový příkaz plus některé další parametry.
Přesně tak.
Kdy mám použít jeden místo druhého?
Vidlici použijte, pokud potřebujete spustit libovolný rubínový kód v samostatném procesu (to nemůžete udělat se spawnem). Použijte spawn, pokud potřebujete vyvolat aplikaci v podprocesu.