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