Rails多线程

时间:2015-04-16 09:29:20

标签: ruby-on-rails ruby multithreading

我在主线程中创建了一个新线程并在while循环中运行,直到我的全局变量发生了变化。但是如果我在主线程中更改全局变量,它就不会反映在新线程中。会有什么问题。

Thread.new do     
  loop do  
p "login info"
p logged
mutex.synchronize do
if(!logged)
    break
  else
    begin
   #do something
   sleep 5          
    rescue => e 
    p  e     
    end
  end   
  end
end

我在logout方法中设置了记录为false。但循环没有破坏

模块SessionsHelper

已记录= false

#以给定用户身份登录。

def log_in(用户)

session[:user_id] = user[:id]

storeAuthToken(user)

logged=true    

1 个答案:

答案 0 :(得分:0)

变量必须定义为$ logged = false