2010-11-08 47 views

回答

45

有什麼用Ruby 1.9.2

Process.fork Process.fork和新Process.spawn方法之間的差異,您可以在另一個進程中運行Ruby代碼。 Process.spawn允許您在另一個進程中運行另一個程序。基本上Process.spawn就像使用Process.fork,然後在分叉進程中調用exec,除了它提供更多選項。

哪一個更適合在子流程中運行另一個程序?

如果您需要向後兼容性,使用fork + execspawn不提供1.8。否則使用spawn,因爲在子進程中運行另一個程序正是spawn的。

據我瞭解,Process.fork接受代碼塊,Process.spawn接受系統命令加上一些其他參數。

沒錯。

當我應該使用一個而不是另一個?

使用fork如果你需要在一個單獨的進程中運行任意Ruby代碼(你不能做到這一點與spawn)。如果您需要在子流程中調用應用程序,請使用spawn

0

我相信Process.Fork會分叉當前進程,Process.Spawn會產生一個新進程。他們完全不同。你想要一個新的線程還是一個新的進程?

+1

我需要一個新的進程,並且當前使用Process.fork(用於背景視頻編碼)。我剛剛在Ruby 1.9中發現了新的Process.spawn方法,並且對差異感到好奇,並且能夠以某種方式從中受益。 – Vincent 2010-11-09 00:09:37

相關問題