2024-04-15 15:44:26 | 我爱编程网
写一个定时器
import java.util.Timer;
import java.util.TimerTask;
public class M {我爱编程网
public static void main(String[] args) {
// TODO todo.generated by zoer
Timer timer = new Timer();
//new MyTask()里可以写定时执行的方法 1000是1s后开始执行 2000是每两秒执行一次
timer.schedule(new MyTask(), 1000, 2000);
}
}
class MyTask extends TimerTask {
@Override
public void run() {
System.out.println("需要定时执行的程序");
}
}
用Timer可以实现~~
Timer的schedule方法可以指定第一次运行的时刻,和重复间隔
具体可以参考API
timer.schedule(task, firstTime, period)
指定firstTime为21:00:00,period为一天的毫秒数24*3600*1000就成了。。
或者可以自己写个线程,放个while循环,每分钟检查一次,如果到时间了就执行任务,如果没到就sleep一分钟。。当然,这种方法比较土。。
更复杂点的可以借助现有的包,比如quartz,有兴趣可以研究下~~
我爱编程网(https://www.52biancheng.com)小编还为大家带来java定时执行一个方法的相关内容。
现在能想到的是三种方法能实现:
1、普通thread实现 :是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果。
2、TimerTask :启动和去取消任务时可以控制,第一次执行任务时可以指定你想要的delay时间。
3、ScheduledExecutorService实现 :最理想的定时任务实现方式,相比于Timer的单线程,它是通过线程池的方式来执行任务的,可以很灵活的去设定第一次执行任务delay时间,提供了良好的约定,以便设定执行的时间间隔等。
希望能帮到你。
2023-12-21 16:29:16
2023-12-24 20:21:11
2024-04-13 17:18:48
2024-04-09 17:44:01
2024-04-04 05:10:44
2024-03-31 15:14:06