java TimerTask 示例
java TimerTask example
我需要定期执行一个线程。我在 java 程序
中使用 timerTask 方法
public class StudentDTO extends TimerTask{
@Override
public void run(){
System.out.println("hi");
}
public static void main(String[] args){
StudentDTO t1=new StudentDTO();
Timer timer = new Timer(true);
timer.scheduleAtFixedRate(t1, 0, 10000);
System.out.println("start");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
当我执行这段代码时,我得到了类似
的答案
开始
你好
嗨
程序将被终止。
我必须 运行 每 10 个线程 sec.Please 给我一个解决方案
将 new Timer(true)
更改为 new Timer()
否则它是一个守护线程,应用程序在 main 退出时死掉
当唯一的线程 运行 都是守护线程时,Java 虚拟机退出。
所以改为
Timer timer = new Timer();
这将创建一个用户线程
有两种方法可以使您的程序每 10 秒 运行。
- 定时器timer=new Timer();
通过改变线程休眠的时间。它应该大于或等于您要安排 task.For 实例的间隔,
try {
Thread.sleep(12000);
} catch (InterruptedException e) {
e.printStackTrace();
}
我需要定期执行一个线程。我在 java 程序
中使用 timerTask 方法public class StudentDTO extends TimerTask{
@Override
public void run(){
System.out.println("hi");
}
public static void main(String[] args){
StudentDTO t1=new StudentDTO();
Timer timer = new Timer(true);
timer.scheduleAtFixedRate(t1, 0, 10000);
System.out.println("start");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
当我执行这段代码时,我得到了类似
的答案开始 你好 嗨
程序将被终止。 我必须 运行 每 10 个线程 sec.Please 给我一个解决方案
将 new Timer(true)
更改为 new Timer()
否则它是一个守护线程,应用程序在 main 退出时死掉
当唯一的线程 运行 都是守护线程时,Java 虚拟机退出。
所以改为
Timer timer = new Timer();
这将创建一个用户线程
有两种方法可以使您的程序每 10 秒 运行。
- 定时器timer=new Timer();
通过改变线程休眠的时间。它应该大于或等于您要安排 task.For 实例的间隔,
try { Thread.sleep(12000); } catch (InterruptedException e) { e.printStackTrace(); }