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