2012-10-29 31 views
1

我有一個系列的嵌套循環在多線程的Ruby on在我的控制器的Rails

x.downto(0) 
    y.downto(0) 
     z.downto(0) 

我想問一下我是否能達到在多線程有點像

#pragma omp parallel for 

確實在拆這些C.

我曾嘗試使用

Thread.new do 

方法,但它似乎沒有任何影響。

+0

MRI有GIL,所以即使你啓動了多個線程,一次只能運行一個線程。嘗試使用沒有GIL的ruby(jruby/rubinius)。 –

+0

是的,我最終使用jruby。謝謝。 – avlach

回答

0
Thread.new{ 
    //some function 
}  

一定會起作用,但在你的情況,如果你喜歡應用

x.downto(0) 
Thread.new { 
    y.downto(0) 
    Thread.new { 
     z.downto(0) 
    } 
} 

它創建多個嵌套線程,但它應該影響。我還沒有遇到過這種情況,但我覺得這可能有幫助。

+0

謝謝你的思維方式,我這樣做,並使用互斥體來保護我的變量。 '0.upto(1)do | i | b = Thread.new { \t 0.upto(1)do | j | \t a = Thread.new { \t \t 0.upto(1)do | k | \t \t m.synchronize { \t \t #CODE這裏\t \t \t \t \t \t \t } \t \t 端\t \t } \t端; \t a.priority = 2; \t a.join; } end; b.priority = 1; b.join;' – avlach

相關問題