为了账号安全,请及时绑定邮箱和手机立即绑定

为什么主线程没有终止

为什么主线程没有终止

MMTTMM 2023-06-08 17:27:45
据我所知,未捕获的线程将与当前线程一起终止。在下面的代码中,main方法已经执行了,但是为什么没有终止呢?public static void main(String[] args) {    ExecutorService executorService = Executors.newFixedThreadPool(2);    executorService.execute(() -> {        while (true) {            throw new RuntimeException();        }    });}
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您的运行时异常发生在 ExecutorService 线程池中。它捕获并吞下异常,线程继续运行。
当至少有一个非守护线程在运行时,应用程序将继续运行。你有 2 个正在运行(在池中)。现在,如果在离开主线程之前调用 executorService.shutdown(),那么它将完成所有任务的运行,然后应用程序将退出。

查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信