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

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

Ответы на вопрос(2)

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

 Vincent09 нояб. 2010 г., 01:09
Мне нужен новый процесс и в настоящее время использую Process.fork (для фонового кодирования видео). Я только что узнал о новом методе Process.spawn в Ruby 1.9, и мне было любопытно узнать о различиях и о том, могу ли я извлечь из этого пользу.
Решение Вопроса

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 если вам нужно вызвать приложение в подпроцесс.

Ваш ответ на вопрос