在看张老师的视频教程中经常遇到这种问题
import java.util.*;
import javax.management.*;
public class TestTimerTask {
public static void main(String[] args) {
class MyTimerTask extends TimerTask
{
private Timer tm=null;
public MyTimerTask(Timer tm)
{
this.tm=tm;
}
public void run()
{
try{
Runtime.getRuntime().exec("calc.exe");
}catch(Exception e)
{
e.printStackTrace();
}
//结束任务线程的代码
tm.cancel();
}
}
Timer tm=new Timer();
tm.schedule(new MyTimerTask(tm),5000);
}
}
schedule(TimerTask task,long delay)
我知道在schedule方法中要传递进去一个TimerTask对象
问题1:为什么要定义一个TimerTask的子类呢?为什么这个子类要定义为内部类呢?
问题2:这个TimerTask对象为什么还要传递进去一个Timer对象呢?
问题3:为什么还要在TimerTask子类中定义一个Timer的构造函数呢?而且还要传递进去一个Timer类型的引用变量呢?
问题4:Timer tm=null;这句也理解不了
也许对于高手来说这些问题都很容易 但是相信对于我或者跟我一样的初学者来说 经常遇到这种问题 例如多线程同步中也有遇到类似的问题,请高手们赐教
|
|