spring 3.0版本后,自带了一个定时任务工具,并且使用简单方便,不用配置文件,能够动态改变执行状态。也能够使用cron表达式设置定时任务。spring
被执行的类要实现Runnable接口多线程
TaskScheduler是一个接口工具
TaskScheduler接口下定义了6个方法
this
CronTrigger t = new CronTrigger("0 0 10,14,16 * * ?"); taskScheduler.schedule(this, t);
TaskScheduler下有五个实现类
线程
public class LocTest implements Runnable { private ConcurrentTaskScheduler tpts = new ConcurrentTaskScheduler(); private void start() { tpts.schedule(this, new Date()); } public void run() { Thread ct = Thread.currentThread(); System.out.println("current id:"+ct.getId()); System.out.println("current name:"+ct.getName()); } public static void main(String[] args) { new LocTest().start(); } }
public class LocTest implements Runnable { private ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); private void start() { taskScheduler.setPoolSize(10); //必须得先初始化,才能使用 taskScheduler.initialize(); taskScheduler.schedule(this, new Date()); } public void run() { Thread ct = Thread.currentThread(); System.out.println("current id:"+ct.getId()); System.out.println("current name:"+ct.getName()); } public static void main(String[] args) { new LocTest().start(); } }