为什么java ThreadPoolExecutor在发生RuntimeException时杀死线程?

2023-12-09

为什么在调用execute方法时,worker中会重新抛出unhanded异常?因此,将在下次执行时创建新线程以最大化线程数


为什么java ThreadPoolExecutor在发生RuntimeException时杀死线程?

我只能猜测原因ThreadPoolExecutor.execute(...)有线程调用runnable.run() directly并且不将其包裹在FutureTask这样你就不会产生开销FutureTask如果你不关心结果。

如果你的线程抛出一个RuntimeException,这希望是一种罕见的事情,并且没有机制将异常返回给调用者,那么为什么要为包装类付费呢?最坏的情况是,线程被杀死,并将被线程池回收并重新启动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么java ThreadPoolExecutor在发生RuntimeException时杀死线程? 的相关文章

随机推荐