我有一個系列的嵌套循環在多線程的Ruby on在我的控制器的Rails
x.downto(0)
y.downto(0)
z.downto(0)
我想問一下我是否能達到在多線程有點像
#pragma omp parallel for
確實在拆這些C.
我曾嘗試使用
Thread.new do
方法,但它似乎沒有任何影響。
我有一個系列的嵌套循環在多線程的Ruby on在我的控制器的Rails
x.downto(0)
y.downto(0)
z.downto(0)
我想問一下我是否能達到在多線程有點像
#pragma omp parallel for
確實在拆這些C.
我曾嘗試使用
Thread.new do
方法,但它似乎沒有任何影響。
Thread.new{
//some function
}
一定會起作用,但在你的情況,如果你喜歡應用
x.downto(0)
Thread.new {
y.downto(0)
Thread.new {
z.downto(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
MRI有GIL,所以即使你啓動了多個線程,一次只能運行一個線程。嘗試使用沒有GIL的ruby(jruby/rubinius)。 –
是的,我最終使用jruby。謝謝。 – avlach