Jaký je rozdíl mezi rozdvojením a rozmístěním procesu?


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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *