Java 延時常見的幾種方法
阿新 • • 發佈:2018-12-30
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秒後自動退出"); } }