gpt4 book ai didi

java - 在 ExecutorService 中吞下 InterruptedException 与否?

转载 作者:行者123 更新时间:2023-12-04 09:18:59 24 4
gpt4 key购买 nike

IBM 有一篇文章。
https://www.ibm.com/developerworks/java/library/j-jtp05236/index.html?ca=drs-#2.1
这表示永远不要吞下interruptedException。声纳上也有同样的事情。
“InterruptedException”不应被忽略。
但是 StackOverflow 上有一个关于 Executorservice 内部的 interruptedException 的问题,这表明我们不应该再次设置中断。
InterruptedException inside ExecutorService
是不是IBM的文章比较老了,没有考虑到现代Java Concurrent包?
我们应该如何处理ExecutorService中的interruptedException?

最佳答案

您应该在所有捕获 InterruptedException 的地方做出决定,因为这取决于您的代码的情况和重要性。
一个明智的 react 是你的任务是注意中断,允许优雅地取消或关闭当前线程或执行程序中的 Runnable。重置没有多大意义Thread.currentThread().interrupt()在 Runnable 的最外层部分(因为线程将在之后退出,或者 Executor 正在管理该中断)。
但是,如果您在任务控制下方的几层调用堆栈中捕获该异常,则重置 Thread.currentThread().interrupt()可能会帮助您的任务的更高级别看到并优雅地退出 - 但前提是他们正在检查 Thread.currentThread().isInterrupted()在每个阶段或您的代码传递 InterruptedException 或特定于应用程序的异常。

关于java - 在 ExecutorService 中吞下 InterruptedException 与否?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63128208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com