美文网首页
线程池中的一个线程抛出异常会怎么处理?

线程池中的一个线程抛出异常会怎么处理?

作者: CoderInsight | 来源:发表于2023-08-27 17:59 被阅读0次

详细参考连接-以及最后有源码流程的分析
答:

  1. 首先该异常会被抛出,且根据线程提交方式的不同:
    • execute(new task()) 会直接抛出异常;
    • submit(new task()) 则不会直接将异常抛出,而需要通过 future.get() 获取线程池的结果或者异常信息;
    • 底层都是调用的 excute() 方法,无非是 submit() 方法使用了 try ... catch ... 进行了二次捕获处理,封装返回给 Future 对象。
  2. 单个线程的异常并不会影响线程池中的其他任务执行;
  3. 最后会将这个线程从线程池中移除,并创建一个新的线程放到线程池中。

相关文章

  • 线程池中的线程异常

    一个线程池中的线程异常了,那么线程池会怎么处理这个线程? 首先进行模拟, 结果如下: 由结果可见 当执行方式是ex...

  • 队列: 队列在线程池等有限资源池中的应用

    当我们向固定大小的线程池中请求一个线程的时候,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请...

  • 多线程之FutureTask与Exception

    在线程池中,如果一个线程抛出一个线程,只有调用future.get方法的时候,我们才知道,否则就什么都不知道了。如...

  • 线程池

    如果线程数小于corePoolSize则直接创建新线程来处理任务,即使线程中的其他线程是空闲的;如果线程池中的线程...

  • Android-线程池

    线程池就是创建若干个可执行的线程放入一个池(容器)中,有任务需要处理时,会提交到线程池中的任务队列,处理完之后线程...

  • synchronous && asychrono

    synchronous 同步处理 (只有一个线程) asynchronous 异步处理 (另开一个线程) 同步和异...

  • JAVA线程池原理及配置

    线程池原理剖析 提交一个任务到线程池中,线程池的处理流程如下:1、判断线程池里的核心线程是否都在执行任务,如果不是...

  • 线程池中Callable异常处理分析

    前言   分析前几天遇到的一个老代码留下的坑。线程池中运行Callable线程时抛出的异常捕获不到,简化的逻辑如图...

  • Java线程池异常处理

    起因 在Java默认的线程池中执行的程序,如果程序产生异常导致线程池里面的线程死掉,完全没有任何信息抛出来,这个是...

  • 线程池几个重要参数

    corePoolSize 线程池中常驻线程核心线程数 maximumPoolSize 线程池中同时容纳可执行的线程...

网友评论

      本文标题:线程池中的一个线程抛出异常会怎么处理?

      本文链接:https://www.haomeiwen.com/subject/vpuwmdtx.html