先來看一段代碼:
public static void main(String[] args) { new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("陽光小強"); } }, 5000); int i = 0; while(true){ System.out.println(i++); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }
將上面代碼修改如下:
new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("陽光小強"); } }, 2000, 3000);
此時定時器Timer就會在2000ms後開始執行run方法,每隔3000ms重複執行。
如果有一種需求,隔1s、2s、1s、2s......分別執行定時器中的代碼(偶數秒和奇數秒分別執行不同的定時器),我們如何?(s代表秒)
實現方式一:
public static void main(String[] args) { new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("陽光小強2秒"); new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("陽光小強4秒"); } }, 1000); } }, 1000, 2000); int i = 0; while(true){ System.out.println(i++); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }