2009-07-27 148 views
1

如果你在ruby中產生一個子進程(例如使用Kernel.system),它可以使用不同的CPU到父進程嗎?由ruby產生的子進程使用的CPU

如果是這樣,你可以在父進程中使用多個線程(在同一CPU內),並讓每個線程產生一個子進程,可以使用不同的CPU,即使在紅寶石1.8?

(背景 - 。它是從this superuser question superscript.rb,但不是做所有50個文件夾,我只想做一個文件夾很快我使用Ubuntu Linux操作系統)

回答

5

紅寶石過程沒有與任何其他進程不同 - 它們由操作系統獨立進行調度,並可能根據操作系統的興趣散佈在各個CPU之間。另一方面,C/Ruby 1.8線程是「綠色」線程,操作系統一無所知。給定Ruby進程中的所有線程都將在同一個CPU上運行。但是,您可以使用線程來管理子進程,並且可以跨CPU調度這些子進程。

+1

關於這個問題,Kernel.system創建了一個子進程,而不是一個Ruby線程。 – Pesto 2009-07-27 13:45:37