可以不拨打Thread#join
吗?在这种情况下,我不在乎线程是否爆炸 - 我只是想让Unicorn继续处理。
class MyMiddleware
def initialize(app)
@app = app
end
def call(env)
t = Thread.new { sleep 1 }
t.join # is it ok if I skip this?
@app.call env
end
end
我会得到“僵尸线程”或类似的东西吗?
答案 0 :(得分:8)
完全可以不调用join
- 事实上,多线程代码通常根本不需要join
。如果您需要阻止,直到新线程完成,您应该只调用join
。
你不会得到一个“僵尸”线程。新线程将一直运行直到完成,然后为您自行清理。