- 其中在使用 Timer 的时候有個细节我没有注意,结果导致代码的运行壹直得不到期望的结果。就是 Timer 的构造方法 new Timer(true) 这句,如果参数为 true 的话,这個线程就是壹個守护线程,导致我在后面调用几個 timer.schedule() 方法时,只有第壹個被执行,后面几個都被屏蔽了,如果把这個参数设置为 false ,后面的调用才能生效
- public class DemoTimerTask {
- public static void main(String[] args) {
- java.util.Timer timer = new java.util.Timer(false);
- java.util.TimerTask task = new java.util.TimerTask(){
- @Override
- public void run() {
- System.out.println("需要定时执行的任务...");
- }
- };
- java.util.Date time = new java.util.Date();
- long delay = 2000;
- long period = 5000;
- //启动定时任务,立即执行壹次并退出
- // timer.schedule(task, time);
- //启动定时任务,立即执行壹次,然后每隔两秒执行壹次
- timer.schedule(task, time, delay);
- //启动定时任务,从现在起过两秒执行壹次然后退出
- // timer.schedule(task, delay);
- //启动定时任务,从现在起过两秒以后,每隔五秒执行壹次
- // timer.schedule(task, delay, period);
- }
- }
定时器的简便用法
最新推荐文章于 2024-01-12 23:52:30 发布