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循环来判断计时器线程是否已经完成,并输出程序运行的总时间。