Является ли Sinatra многопоточным? Я читал еще раз, где эта "синатра многопоточна по умолчанию", что это значит?
Рассмотрим этот пример
get "/multithread" do
t1 = Thread.new{
puts "sleeping for 10 sec"
sleep 10
# Actually make a call to Third party API using HTTP NET or whatever.
}
t1.join
"multi thread"
end
get "/dummy" do
"dummy"
end
Если я получаю доступ к "/multithread" и "/dummy" впоследствии на другой вкладке или в браузере, тогда ничего не может быть подано (в этом случае в течение 10 секунд), пока запрос "/многопоточность" не будет завершен. В случае, если активность зависает, приложение перестает отвечать.
Как мы можем обойти это без появления другого экземпляра приложения?