我有一组数据想在我的Rails应用程序中进行一些计算,每个计算都互相独立,所以我希望将它们线程化以加快响应速度。
这是我目前的代码:
def show
@stats = Stats.new
Thread.new {
@stats.top_brands = #RESULT OF FIRST CALCULATION
}
Thread.new {
@stats.top_retailers = #RESULT OF SECOND CALCULATION
}
Thread.new {
@stats.top_styles = #RESULT OF THIRD CALCULATION
}
Thread.new {
@stats.top_colors = #RESULT OF FOURTH CALCULATION
}
render json: @stats
end
现在,对于
@stats
的每个成员实例,都返回一组空数组。但是,如果我将这些线程合并在一起,它就可以运行,但这违反了线程的本意,因为每个线程都被阻塞。由于我对线程非常陌生,我想知道我在这里做错了什么,或者我是否能够完成我试图做到的事情,即并行运行4个计算并将结果返回给客户端。
谢谢, Joe