Java 延时常见的几种方法

[java]  view plain  copy
 
  1. 1、 用Thread就不会iu无法终止  
  2.   
  3. new Thread(new Runnable() {  
  4.             public void run() {  
  5.                 while (true) {  
  6.                     test();  
  7.                     try {  
  8.                         Thread.sleep(500);  
  9.                     } catch (InterruptedException e) {  
  10.                         // TODO Auto-generated catch block  
  11.                         e.printStackTrace();  
  12.                     }  
  13.                 }  
  14.             }  
  15.             private void test() {  
  16.                 // TODO Auto-generated method stub  
  17.             }  
  18.             public Runnable start() {  
  19.                 // TODO Auto-generated method stub  
  20.                 return null;  
  21.             }  
  22.         }.start());  
  23. 2、 或者用现成的  
  24.   
  25. javax.swing.Timer timer = new javax.swing.Timer(500new ActionListener() {   public void actionPerformed(ActionEvent e) {     repaint();   } };  
  26.   
  27. timer.start();  
  28.   
  29. 3、下面这个方法测试过可以用 java非线程延时  
  30.   
  31. import java.awt.Robot;  
  32. import java.util.Date;  
  33.   
  34. public class test {  
  35.      public   static   void   main(String[]   args)   throws   Exception{     
  36.          Robot  r   =   new   Robot();   
  37.          System.out.println( "延时前:"+new Date().toString()  );   
  38.          r.delay(   2000   );     
  39.          System.out.println(   "延时后:"+new Date().toString()   );     
  40.    }     
  41. }  
  42.    
  43.   
  44.   4、 用这下面的TimeTask类(指定延时)  
  45.   
  46. java里面的sleep()并不能精确定时,TimeTask可以:例下面的小程序:  
  47.   
  48. import java.util.*;  
  49.   
  50. public class test {  
  51.     public static void main(String[] args) {  
  52.         Timer timer = new Timer();// 实例化Timer类  
  53.         timer.schedule(new TimerTask() {  
  54.             public void run() {  
  55.                 System.out.println("退出");  
  56.                 this.cancel();  
  57.             }  
  58.         }, 5000);// 这里百毫秒  
  59.         System.out.println("本程序存在5秒后自动退出");  
  60.     }  
  61. }  

你可能感兴趣的:(java)