Java是一種十分流行的編程語言,可以用于開發各種類型的應用程序。在許多應用程序中,暫停和計時器是十分常見的功能。在Java中,我們可以使用線程實現暫停和計時器的功能,下面是一個簡單的示例。
/** * 暫停程序的線程 */ class PauseThread extends Thread { private volatile boolean isPaused = false; public void pauseThread() { isPaused = true; } public void resumeThread() { isPaused = false; } @Override public void run() { while (true) { if (isPaused) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } else { System.out.println("正在執行任務..."); } } } } /** * 計時器的線程 */ class TimerThread extends Thread { private volatile boolean isFinished = false; private int count; public int getCount() { return count; } public boolean isFinished() { return isFinished; } @Override public void run() { while (!isFinished) { try { Thread.sleep(1000); count++; } catch (InterruptedException e) { e.printStackTrace(); } } } } public class Main { public static void main(String[] args) { PauseThread pauseThread = new PauseThread(); pauseThread.start(); TimerThread timerThread = new TimerThread(); timerThread.start(); try { // 模擬執行任務5秒 Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } pauseThread.pauseThread(); System.out.println("暫停程序運行..."); try { // 模擬暫停1秒 Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } pauseThread.resumeThread(); System.out.println("恢復程序運行..."); while (!timerThread.isFinished()) { System.out.println("程序已經運行了 " + timerThread.getCount() + " 秒..."); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("程序運行結束..."); } }
上述代碼中,我們定義了兩個線程:PauseThread和TimerThread。PauseThread用于實現暫停程序的功能,TimerThread用于實現計時器的功能。在主程序中,我們先啟動兩個線程,然后模擬執行任務5秒后暫停程序1秒,然后恢復程序運行。最后我們采用while循環來判斷計時器線程是否已經完成,并輸出程序運行的總時間。