我有一个 java.util.concurrent.Execution 服务 - 一个单线程线程池执行器。我向它提交某些任务。如果任务抛出未经检查的异常,则线程会终止,但服务会确保生成一个新线程并在其中执行后续任务。但是我不想要这个功能并且仍然想使用 threadPoolExecutor。即,如果任务抛出未经检查的异常,我希望服务 shutDownNow()。
实现此目标的最佳方法是什么?使用限制生成的线程数量的自定义线程工厂是否有意义?
最佳答案
您可以创建一个 ThreadPoolExecutor 子类并覆盖 afterExecute 方法。该方法有一个可抛出的参数,如果出现异常,该参数将为非空。
关于java - 死你threadpoolexecutor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779318/