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