/**
* 具体实现类
*/
import java.util.Timer;
public class Test
{
public Test(){}
public void run()
{
MyTask myTask = new MyTask();
Timer timer = new Timer(true);
timer.schedule(myTask,0,1000);
//test system process
while(true)
{
System.out.println("system in working !");
try {
Thread.currentThread().sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test = new Test();
test.run();
}
}
/**
* 任务执行类
*/
import java.util.TimerTask;
public class MyTask extends TimerTask
{
/**
* default construction
*/
public MyTask(){};
/**
* run function
*/
public void run()
{
//do somthing
System.out.println("new task is working !!");
}
}
public Timer(boolean isDaemon)
-
创建一个新计时器,可以指定其相关的线程作为守护程序运行。如果计时器将用于安排重复的“维护活动”,则调用守护线程,在应用程序运行期间必须调用守护线程,但是该操作不应延长程序的生命周期。
-
参数:
-
isDaemon
- 如果应该将相关的线程作为守护程序运行,则为 true。
-
守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。(以上是针对正常退出,调用System.exit则必定会退出)
所以setDeamon(true)的唯一意义就是告诉JVM不需要等待它退出,让JVM喜欢什么退出就退出吧,不用管它。
无论是什么线程,都一定会分时间片执行的,和上面的检测拼写及输入并没有任何关系。