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 秒 运行。

  1. 定时器timer=new Timer();
  2. 通过改变线程休眠的时间。它应该大于或等于您要安排 task.For 实例的间隔,

            try {
                Thread.sleep(12000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }