2012-04-07 66 views
1

使用類變量與Rails中的線程進行通信是否爲0K?我可以使用類變量與線程通信嗎?

與使用隊列相比有什麼優點或缺點嗎?

我不知道,如果這個工程在任何環境下,它的工作在我的:Ruby企業+乘客+的nginx + Rails的3

下面是一個例子:

# rails runner "ThreadJob.new.run" 
class ThreadJob 

    @@counter = 0 

    def run 
    producer = Thread.new do 
     1.upto 10 do 
     sleep 1 
     @@counter+= 1 
     puts "Producer: #{@@counter}" 
     end 
    end 

    consumer = Thread.new do 
     sleep 0.5 
     1.upto 10 do 
     sleep 1 
     @@counter-= 1 
     puts "Consumer: #{@@counter}" 
     end 
    end 

    producer.join 
    consumer.join 

    puts @@counter # result should be 0 
    end 
end 

我想知道如果如果我在另一個進程中修改@@ counter,這可以工作。

回答

相關問題