timer和timertask是jdk自带的定时任务实现,无需导入第三方jar包来完成
1、指定多久之后执行此任务,注意:只会执行一次
java" id="highlighter_546711">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Timer timer;
public TimerTest( int time){
timer = new Timer();
timer.schedule( new timerTaskTest(),time* 1000 ); //timer.schedule(执行的方法,延迟多久执行(ms))
}
public static void main(String[] args) {
System.out.println( "timer begin..." );
new TimerTest( 3 );
}
@Override
public void run() {
System.out.println( "time's up!!" );
}
}
}
|
2、在指定的时间执行任务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
public class TimerTest1 {
Timer timer;
public TimerTest1(){
Date time = getTime();
System.out.println( "指定时间time=" +time);
timer = new Timer();
timer.schedule( new TimerTaskTest1(),time); //timer.schedule(执行的方法,要执行的时间)
}
public Date getTime(){ //设置执行时间
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 5 );
calendar.set(Calendar.MINUTE, 46 );
calendar.set(Calendar.SECOND, 00 );
Date time = calendar.getTime();
return time;
}
public static void main(String[] args) {
new TimerTest1();
}
class TimerTaskTest1 extends TimerTask{
public void run() {
System.out.println( "指定时间执行线程任务..." );
}
}
}
|
3、在延迟指定时间后以指定的间隔时间循环执行定时任务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class TimerTest2 {
Timer timer;
public TimerTest2(){
timer = new Timer();
timer.schedule( new TimerTaskTest2(), 1000 , 2000 ); //tiemr.schedule(执行的方法,延迟时间,多久执行一次)
}
class TimerTaskTest2 extends TimerTask{
@Override
public void run() {
System.out.println( "本次任务执行时间" + new Date());
}
}
public static void main(String[] args) {
new TimerTest2();
}
}
|
到这里定时任务实现类已经完成,如果是web项目,则需要在web.xml中配置启动
1
2
3
|
<listener>
<listener- class >com.sxl.ContextListener</listener- class >
</listener>
|
配置完成即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。