В чем разница между Process.fork и Process.spawn в Ruby 1.9.2
=============================================================

В чем разница между Process.fork и новыми методами Process.spawn в Ruby 1.9.2 и какой из них лучше для запуска другой программы в подпроцессе? Насколько я понимаю, Process.fork принимает блок кода, а Process.spawn принимает системную команду плюс некоторые другие параметры. Когда я должен использовать один вместо другого?

y 1.9.2

`Process.fork` позволяет запускать код ruby в другом процессе.`Process.spawn` позволяет запустить другую программу в другом процессе. В принципе`Process.spawn` это как использовать`Process.fork` а потом звонит`exec` в раздвоенном процессе, за исключением того, что он дает вам больше возможностей.

и какой из них лучше запустить другую программу в подпроцесс?

Если вам нужна обратная совместимость, используйте`fork` + `exec` как`spawn` недоступно в 1.8. В противном случае используйте`spawn` поскольку запуск другой программы в подпроцессе - это именно то,`spawn` сделано для.

Насколько я понимаю, Process.fork принимает блок кода, а Process.spawn принимает системную команду плюс некоторые другие параметры.

Именно так.

Когда я должен использовать один вместо другого?

использование`fork` если вам нужно запустить произвольный код ruby в отдельном процессе (вы не можете сделать это с`spawn`). использование`spawn` если вам нужно вызвать приложение в подпроцесс.



 что Process.Fork разветвляет текущий процесс, а Process.Spawn порождает новый процесс. Они совсем разные. Вы хотите новую тему или новый процесс?