【问题标题】:Nested JavaFX ExecutorService shutdown嵌套 JavaFX ExecutorService 关闭
【发布时间】:2019-07-03 07:57:50
【问题描述】:

例如,如果您在 JavaFX 中有一个启动任务的 ExecutorServic(ES),该任务又包含另一个 ES 并启动新任务。 - 当第一个 ES 关闭时,第二个 ES 的线程会发生什么。我认为它们不会被关闭(如果我理解正确的话,如果只关闭主线程,它们就不会被关闭)。

【问题讨论】:

    标签: java executorservice shutdown java-threads


    【解决方案1】:

    当您建立由线程池支持的执行器服务时,关闭该服务及其线程池至关重要。如果您的应用程序退出,您的任务和池可能会像僵尸一样继续前进。确保应用程序生命周期中的挂钩(启动、退出等)被正确地用于启动和停止执行程序及其线程池。

    此外,您可以重用执行程序服务及其线程池,而不是产生一个新的。有时有一个单独的池是有意义的,但你应该非常清楚你这样做的动机。

    当你建立两个或多个执行器服务时,它们和它们的后备线程池是分开的。 关闭一个对另一个没有影响。

    顺便说一句,在某些情况下,将一个任务安排在计划的执行器服务计划中,再安排另一个任务是明智的。但这也可能是一种“代码味道”,是关于糟糕设计的线索。您没有提供足够的细节来判断这里是哪种情况,但我建议您考虑一下并搜索许多其他现有的关于 executors 的帖子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多