彻底停止运行线程池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的主要内容,如果未能解决你的问题,请参考以下文章

Java线程池

安卓线程池ThreadPoolExecutor的常见使用

[转发]对ThreadPoolExecutor初识

多线程(基础2)

多线程(基础2)

Java多线程:彻底搞懂线程池