您的位置:首页 > 编程语言 > Java开发

七、java实现定时任务的三种方式

2017-03-09 19:37 816 查看
一、测试定时任务的实现,以内部类的方式实现Runnable接口,在run方法中使用Thread.sleep();方法来实现定时时间戳调度,并通过线程开启的方式来调用

final long timeInterval = 1000;
//neibulei内部类shixian内部类实现runnable接口
Runnable runnable = new Runnable() {
public void run() {
while (true) {
System.out.println("Hello !!");
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();

二、内部类方式实现TimerTask接口,在run()方法里实现具体任务,使用Timer的当时来实现定时调度,并且可以设置首次执行延迟时间。 Timer实例可以调度多任务,它是线程安全的。 当Timer的构造器被调用时,它创建了一个线程,这个线程可以用来调度任务(单线程执行定时任务)。

TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("lattice !!!");
}
};
Timer timer = new Timer();
long delay = 0; //首次执行延迟的时间
long intevalPeriod = 1 * 1000; //多次调用时间戳
// 在一个定时器中执行实现的计划任务
timer.scheduleAtFixedRate(task, delay, intevalPeriod);

三、ScheduledExecutorService是从Java SE5的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式。它是通过线程池的方式来执行任务的,提供了良好的约定,以便设定执行的时间间隔 。

Runnable runnable = new Runnable() {
public void run() {
System.out.println("Hello !!");
}
};
ScheduledExecutorService service = Executors
.newSingleThreadScheduledExecutor();
// 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间
service.scheduleAtFixedRate(runnable, 10, 1, TimeUnit.SECONDS);


原文出处:http://blog.csdn.net/haorengoodman/article/details/23281343/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息