运行多个线程有什么问题吗?
当我使用 action1 加载页面时,它可以工作。
家庭控制器
def action1
threads = []
threads << Thread.new {@lub = client.tag_recent_media('tag1')}
Thread.new{@tags = client.tag_recent_media('encorebeach')}
Thread.new{@location = client.location_recent_media('16565')}
threads.each(&:join)
end
主页视图
<% (@lub+@tags+@location).each do |media| %>
<%= media %>
<% end %>
这是另一个具有不同视图的控制器
另一个控制器
def action1
threads2 = []
threads2 << Thread.new {@lub2 = client.tag_recent_media('tag1')}
Thread.new{@tags2 = client.tag_recent_media('encorebeach')}
Thread.new{@location2 = client.location_recent_media('16565')}
threads2.each(&:join)
end
另一种观点
<% (@lub2+@tags2+@location2).each do |media| %>
<%= media %>
<% end %>
对于第二个输出,我得到一个错误
undefined method `+' for nil:NilClass
我认为线程有问题。有人可以帮助我了解为什么会这样吗?是不是因为我已经在首页执行了一个线程,然后当我想转到另一个页面时,它又运行了一个线程,它不起作用?
谢谢!