我做的需求是这样的,提供一个数据接口。利用多线程进行请求,然后把请求到的数据汇总。现在要解决的一个问题就是:当某个子线程如果报告怎么把错误信息提供给主线程,并且使得其它进行数据请求的子线程停止。
------解决方案--------------------
子线程根据标记判断
主线程更改这个标记
------解决方案--------------------
用线程池了么? 比如这个 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