当声明一个Timer,执行schedule()方法时,这是一个异步的操作,

1 import java.util.Timer;
 2 import java.util.TimerTask;
 3 
 4 public class test{
 5     public String gets(){
 6         Timer timer=new Timer();
 7         timer.schedule(new TimerTask(){
 8             int times=0;
 9             @Override
10             public void run() {
11                 times=times+1;
12                 System.out.println("Timer1执行"+times+"次");
13                 
14             }
15             
16         }, 0, 10000);
17         return "我是字符串";
18     }
19     public static void main(String[] str){
20         System.out.println(new test().gets());
21         Timer timer2=new Timer();
22         timer2.schedule(new TimerTask(){
23             int times=0;
24             @Override
25             public void run() {
26                 times=times+1;
27                 System.out.println("Timer2执行"+times+"次");
28                 
29             }
30             
31         }, 0, 20000);
32         System.out.println("Timer是异步的吗?是一个异步线程吗?");
33     }
34 }

执行结果:

我是字符串
Timer是异步的吗?是一个异步线程吗?
Timer1执行1次
Timer2执行1次
Timer1执行2次
Timer2执行2次
Timer1执行3次
Timer1执行4次
Timer1执行5次
Timer2执行3次
Timer1执行6次

 

 

 

 

 

 

 

 

 

 

可见当包含有Timer的gets()方法执行完成后,Timer并没有就此被撤出。而是按照周期继续执行,