2009-07-27 145 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