java - 死你threadpoolexecutor

标签 java concurrency

我有一个 java.util.concurrent.Execution 服务 - 一个单线程线程池执行器。我向它提交某些任务。如果任务抛出未经检查的异常,则线程会终止,但服务会确保生成一个新线程并在其中执行后续任务。但是我不想要这个功能并且仍然想使用 threadPoolExecutor。即,如果任务抛出未经检查的异常,我希望服务 shutDownNow()。

实现此目标的最佳方法是什么?使用限制生成的线程数量的自定义线程工厂是否有意义?

最佳答案

您可以创建一个 ThreadPoolExecutor 子类并覆盖 afterExecute 方法。该方法有一个可抛出的参数,如果出现异常,该参数将为非空。

关于java - 死你threadpoolexecutor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779318/

相关文章:

java - 扩展的 try-with-resources 语句到底捕获了什么?

java - 如何使用正确的 run() 方法实现来保持 CopyOnWriteArrayList 的线程安全?

php - 何时、为何以及何处在 Web 应用程序中使用锁定表

java - 什么是元数据 GC 阈值以及如何调整它?

java - Java 中使用继承的基本窗口和扩展窗口

java - 随机 JVM 崩溃,堆栈仅显示 Hibernate 数据

c# - .NET并发问题: Can I yield a semaphore to another thread

java - 波动发生在澄清/误解之前?

java - 如何对 ExecutorService 为任务生成新线程进行单元测试?

java - 如果没有构造函数,则无法提供 Dagger 2