彻底停止运行线程池ThreadPoolExecutor
Posted crazy_itman
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了彻底停止运行线程池ThreadPoolExecutor相关的知识,希望对你有一定的参考价值。
最近系统开发时遇到这样一个需求:
该功能执行时间很久,如果运行过程出现错误,也无法将其停止,必须眼睁睁的看着它浪费很久时间,除非停止服务器。
于是,我就想着如何给该功能加上一个“停止”的功能呢?
经过不断的思考和测试,发现思路如此简单,直接上代码!
package com.iamzken.test;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class ThreadPoolExecutorTest
//线程池
private static ThreadPoolExecutor pool = new ThreadPoolExecutor(3, 5, 5,
TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10),
new ThreadPoolExecutor.CallerRunsPolicy());
//定义一个线程,相当于父线程
private static Thread t;
//保存线程池中当前所有正在执行任务的活动
以上是关于彻底停止运行线程池ThreadPoolExecutor的主要内容,如果未能解决你的问题,请参考以下文章