可以不调用Thread#join吗?

Sea*_*ere 6 ruby multithreading

可以不打电话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
Run Code Online (Sandbox Code Playgroud)

我会得到"僵尸线程"或类似的东西吗?

Ree*_*sey 9

没有调用是完全没问题的join- 事实上,join多线程代码通常根本不需要.只有join在需要阻塞直到新线程完成时才应该调用.

你不会得到一个"僵尸"线程.新线程将一直运行直到完成,然后为您自行清理.