java指定延时执行任务的几种常见方法

1、 用Thread就不会iu无法终止  
 
new Thread(new Runnable() {  
            public void run() {  
                while (true) {  
                    test();  
                    try {  
                        Thread.sleep(500);  
                    } catch (InterruptedException e) {  
                        // TODO Auto-generated catch block  
                        e.printStackTrace();  
                    }  
                }  
            }  
            private void test() {  
                // TODO Auto-generated method stub  
            }  
            public Runnable start() {  
                // TODO Auto-generated method stub  
                return null;  
            }  
        }.start());  
2、 或者用现成的  
 
javax.swing.Timer timer = new javax.swing.Timer(500, new ActionListener() {   public void actionPerformed(ActionEvent e) {     repaint();   } };  
 
timer.start();  
 
3、下面这个方法测试过可以用 java非线程延时  
 
import java.awt.Robot;  
import java.util.Date;  
 
public class test {  
     public   static   void   main(String[]   args)   throws   Exception{     
         Robot  r   =   new   Robot();   
         System.out.println( "延时前:"+new Date().toString()  );   
         r.delay(   2000   );     
         System.out.println(   "延时后:"+new Date().toString()   );     
   }     
}  
   
 
  4、 用这下面的TimeTask类(指定延时)  
 
java里面的sleep()并不能精确定时,TimeTask可以:例下面的小程序:  
 
import java.util.*;  
 
public class test {  
    public static void main(String[] args) {  
        Timer timer = new Timer();// 实例化Timer类  
        timer.schedule(new TimerTask() {  
            public void run() {  
                System.out.println("退出");  
                this.cancel();  
            }  
        }, 5000);// 这里百毫秒  
        System.out.println("本程序存在5秒后自动退出");  
    }  
}

你可能感兴趣的:(java指定延时执行任务的几种常见方法)