【发布时间】:2011-09-13 05:45:47
【问题描述】:
我正在开发一个多定时器任务项目。
首先,我设计了一些扩展 TimerTask 的类并重写了 run() 方法。在run()方法中,会打印一行当前时间。
其次,一个 Timer 是这样初始化的。
......
DataTask task1 = new DataTask();
myTaskList.add(task1);
DataTask task2 = new DataTask();
myTaskList.add(task2);
DataTask task3 = new DataTask();
myTaskList.add(task3);
DataTask task4 = new DataTask();
myTaskList.add(task4);
for(TimerTask task : myTaskList)
{
Timer timer = new Timer();
timer.schedule(task,1,60*1000);
}
......
public class DataTask extends TimerTask
{
@override
public void run()
{
System.out.println("print sth");
}
}
一个线程中的一个任务。对吗?
有时任务工作,但有时任务不会打印任何东西,没有任何异常,而线程仍然活着。
这可能是什么原因?
【问题讨论】:
-
您可以通过编写 System.currentTimeMillis() 来获取时间。很多时候,定时器类的使用可以很简单地实现。
标签: java multithreading timer timertask