淘先锋技术网

首页 1 2 3 4 5 6 7

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