我读它颇有几分在过去的几个小时,我根本看不到任何理由(有效的理由)来调用shutdown()
的ExecutorService
,除非我们有一个巨大的应用程序,商店,几十个几十个不同的执行服务,不用于很长时间。
关闭(根据我的收集)唯一要做的事情是完成正常线程后所做的事情。当普通线程完成Runnable(或Callable)的run方法时,它将传递给Garbage Collection进行收集。使用Executor Service,线程将被简单地搁置,它们不会被选中以进行垃圾回收。为此,需要关机。
好,回到我的问题。有什么理由ExecutorService
经常要求关机,甚至在提交某些任务后立即关机?我想抛弃有人正在做的情况,然后在awaitTermination()
此之后立即调用,因为这已得到验证。一旦完成此操作,就必须重新创建一个新文件ExecutorService
,以执行相同的操作。难道不是ExecutorService
要重用线程的整个想法吗?那么,为什么要ExecutorService
这么快就销毁呢?
简单地创建ExecutorService
(或根据您需要的数量进行耦合),然后在应用程序运行期间将任务传给他们,然后在应用程序退出或其他重要阶段关闭这些执行程序,这是一种合理的方法吗? ?
我想从一些经验丰富的编码人员那里得到答案,他们确实使用ExecutorServices编写了许多异步代码。
第二个问题,与android平台的交易要小一些。如果你们中的某些人会说每次关闭执行程序都不是最好的主意,而您在android上编程,能否告诉我当我们处理不同的事件时如何处理这些关闭(具体来说-在执行时)应用程序生命周期。
基于CommonsWare的评论,我将该帖子设为中立。我真的对争论到死不感兴趣,而且看来它正在领先。我只想从经验丰富的开发人员那里了解到我在这里问的内容,如果他们愿意分享他们的经验。谢谢。