Java线程池吃异常问题

Executors Java线程池框架吃异常问题解决
重写ThreadPoolExecutor类并覆盖类中的afterExecute方法得到TaskExecutor类:

@Override
protected void afterExecute(Runnable r, Throwable t) {
    super.afterExecute(r, t);
    if (t == null && r instanceof Future<?>) {
        try {
            Object result = ((Future<?>) r).get();
        } catch (CancellationException ce) {
            t = ce;
        } catch (ExecutionException ee) {
            t = ee.getCause();
        } catch (InterruptedException ie) {
            Thread.currentThread().interrupt(); // ignore/reset
        }
    }
    if (t != null) {
        t.printStackTrace();
    }
}

创建ExecutorService对象并开始执行

executorService = new TaskExecutor(0, Integer.MAX_VALUE,
                60L, TimeUnit.SECONDS,
                new SynchronousQueue<Runnable>());
发布了93 篇原创文章 · 获赞 22 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/liushaofang/article/details/82840193