你的位置:首页 > Java教程

[Java教程]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秒后自动退出");  }}