ScheduledThreadPool类使用场景:定时以及周期性执行任务的需求。
ScheduledThreadPool类说明:它可另行安排在给定的延迟后运行命令,或者定期执行命令,此类要优于Timer
。一旦启用已延迟的任务就执行它,但是有关何时启用,启用后何时执行则没有任何实时保证。按照提交的先进先出 (FIFO) 顺序来启用那些被安排在同一执行时间的任务。
ScheduledThreadPool示例(定时删除数据业务):
//此线程完成的是删除数据操作线程:
public class TimerDeleteThreadTask extends Thread{
@Override
public void run() {
System.out.println("执行删除操作。。。。。。。。"+"时间为:"+new Date());
}
}
public class SheduledThreadPoolExecutorTest {
//将TimerDeleteThreadTask 线程放入到SheduledThreadPoolExecutor线程中(通过参数传递过去)
public void timerExcute(){
ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(1);
TimerDeleteThreadTask timerDeleteThreadTask = new TimerDeleteThreadTask();
scheduledThreadPoolExecutor.scheduleAtFixedRate(timerDeleteThreadTask, 2, 60, TimeUnit.SECONDS);
}
//测试方法
public static void main(String[] args) {
SheduledThreadPoolExecutorTest sheduledThreadPoolExecutorTest = new SheduledThreadPoolExecutorTest();
sheduledThreadPoolExecutorTest.timerExcute();
}
}