【问题标题】:Does process exit when the main thread ends?主线程结束时进程是否退出?
【发布时间】:2013-12-03 15:57:09
【问题描述】:

我是 Ruby 新手,快速搜索该问题并没有给出结果。对于这种情况,编写测试代码相对容易,但可能值得在这里询问以获得权威答案。

考虑场景:在从命令行调用的 ruby​​ 应用程序中,主线程创建并启动工作线程。工作线程执行长时间的计算。主线程的方法不等待任何东西,只是在产生工人后完成。

主线程退出后,进程退出和工作线程会被终止吗?
是否有描述这种行为的文档?

【问题讨论】:

    标签: ruby multithreading


    【解决方案1】:

    只要这些线程是守护线程,它们就会与您的程序一起退出。有关于线程退出的文档(虽然很短)here。但是,如果您希望在由另一个进程(以及相应的进程结束)产生后留下来的进程,那么您应该查看适合该任务的多处理 gem 或库。

    【讨论】:

    • 我理解您指出的文档在该主题上并不完全清楚:它没有明确说明 last thread 可以是 not的事实> 主线程。换句话说,当主线程自行退出时,仍不清楚会发生什么 - 进程是否会终止。
    猜你喜欢
    • 2012-08-06
    • 2021-06-21
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2014-01-04
    • 2017-11-03
    • 2017-01-19
    • 2020-01-04
    相关资源
    最近更新 更多