Ответ @tadman совершенно правильный, я просто хочу немного расширить 3 абзаца.
Когда темы лучше использовать в MRI Ruby? Главным образом, если вы связаны операциями ввода-вывода. Итак, если у вас есть действие Rails, когда у вас много запросов к базе данных и / или http-запросов, вы можете сделать их в потоке, сохранить запрос в локальной переменной потока, объединить их вместе и затем обработать локальные переменные потока. Таким образом вы достигнете заметного улучшения производительности.
Это может выглядеть так:
threads << Thread.new do
ActiveRecord::Base.connection_pool.with_connection do
t = Thread.current
t[:variable_name] = Model.find_by(col: data)
end
end
joined_threads = threads.map &:join
joined_threads.each do |t|
t.keys.each do |key|
k = key.to_s.downcase
next if k.start_with?("active") || k.start_with?("__")
instance_variable_set "@#{key}", t[key]
end
end