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秒后自动退出");
}
}