首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java TimerTask示例

java TimerTask示例
EN

Stack Overflow用户
提问于 2018-11-15 04:58:14
回答 3查看 1.7K关注 0票数 1

我需要在一定的时间间隔内执行一个线程。我在java程序中使用timerTask方法。

代码语言:javascript
复制
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上运行一个线程,建议我一个解决方案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-15 05:07:03

当唯一运行的线程都是守护进程线程时,Java虚拟机就会退出。

所以改变到

代码语言:javascript
复制
 Timer timer = new Timer();

这将创建一个用户线程

票数 1
EN

Stack Overflow用户

发布于 2018-11-15 05:06:13

new Timer(true)更改为new Timer(),否则是守护进程线程,当main退出时应用程序就会死

票数 1
EN

Stack Overflow用户

发布于 2018-11-15 05:11:35

有两种方法可以让你的程序每10秒运行一次。

  1. 定时器timer=new定时器();
  2. 通过改变线程睡眠的时间。它应该大于或等于要调度task.For实例的时间间隔, 尝试{ Thread.sleep(12000);} catch (InterruptedException e) { e.printStackTrace();}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53312675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档