当前位置: 代码迷 >> Java Web开发 >> 多线程的处理、子线程报错怎么停止主线程其它的子线程。并获取子线程异常信息
  详细解决方案

多线程的处理、子线程报错怎么停止主线程其它的子线程。并获取子线程异常信息

热度:85   发布时间:2016-04-16 22:04:38.0
多线程的处理、子线程报错如何停止主线程其它的子线程。并获取子线程错误信息。
我做的需求是这样的,提供一个数据接口。利用多线程进行请求,然后把请求到的数据汇总。现在要解决的一个问题就是:当某个子线程如果报告怎么把错误信息提供给主线程,并且使得其它进行数据请求的子线程停止。
------解决方案--------------------
子线程根据标记判断
主线程更改这个标记
------解决方案--------------------
用线程池了么?  比如这个 ThreadPoolExecutor
------解决方案--------------------
引用:
用线程池了么?  比如这个 ThreadPoolExecutor

如果使用线程池
    public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              RejectedExecutionHandler handler) {
        this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
             Executors.defaultThreadFactory(), handler);
    }

线程池创建的时候,有一个handler就是处理异常的,可以实现那个接口写自己的逻辑,当异常出现时,调用线程池的shutdownNow() 方法就可以了 具体可查api
  相关解决方案