Timer和TimerTask类,是多线程的一种形式,使用的包是java.util.在这种实现方式中,Timer类实现的是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线程。其实,Timer类本身实现的就是一个线程,只是这个线程是用来实现调用其他线程的。而TimerTask类是一个抽象类,该类实现了Runnable接口,所以该类具有多线程的能力。
在这种实现方式中,通过继承TimerTask是该类获得多线程的能力,将需要多线程执行的代码写在run方法内部,然后通过Timer可以启动线程的执行。
下面的实例中,用MyTimerTask类实现了多线程。首先启动线程时需要首先创建一个Timer类的对象,以及一个MyTimerTask线程类的对象,然后使用Timer对象的schedule方法实现。启动县城的代码如下:
//创建Timer
Timer t = new Timer();
//创建MyTimerTask
MyTimerTask mtt = new MyTimerTask("线程1:");
//启动线程
t.schedule(mmt,0);
其中schedule方法中的第一个参数mmt代表需要启动的线程对象,而第二个参数0则代表延迟0ms启动线程,也就是立即启动。
代码示例如下:
import java.util.*;
public class MyTimerTaskTest {
public static void main(String[] args){
Timer t = new Timer();
MyTimerTask mtt = new MyTimerTask("线程1:");
t.schedule(mtt,0);
}
}
import java.util.TimerTask;
public class MyTimerTask extends TimerTask{
String s;
public MyTimerTask(String s){
this.s = s;
}
public void run(){
try{
for(int i = 0; i<10;i++){
Thread.sleep(1000);
System.out.println(s+i);
}
}catch(Exception e){
}
}
}