Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 钢轨多线程_Ruby On Rails_Ruby_Multithreading - Fatal编程技术网

Ruby on rails 钢轨多线程

Ruby on rails 钢轨多线程,ruby-on-rails,ruby,multithreading,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

我在主线程中创建了一个新线程,并在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
我已在注销方法中将logged设置为false。但循环并没有中断

模块会话助手

记录=错误

#登录给定用户

def登录(用户)


end

变量必须定义为$logged=false

您可以显示您在哪里定义了logged。
logged
是线程范围的局部变量。您可能希望使用class/instance变量,但这绝对是一个任务。logged是在类级别定义的
session[:user_id] = user[:id]

storeAuthToken(user)

logged=true