Sinatra是多线程的吗?我在其他地方读到"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
Run Code Online (Sandbox Code Playgroud)
如果我随后在另一个选项卡或浏览器中访问"/ multithread"和"/ dummy",则无法提供任何内容(在这种情况下为10秒),直到"/ multithread"请求完成.如果活动冻结应用程序变得没有响应.
我们如何在不产生应用程序的另一个实例的情况下解决这个问题?