gpt4 book ai didi

java - 对于可以在java中外部暂停和取消暂停的线程应用程序,是否有一个好的解决方案?

转载 作者:行者123 更新时间:2023-12-02 04:23:10 25 4
gpt4 key购买 nike

我在寻找一种编写在自己的线程上运行的应用程序的好方法时遇到了问题。人们应该能够启动和停止它,并在其运行时暂停和取消暂停。

public abstract class Application implements Runnable {

private Thread runningThread;
private volatile boolean isRunning;
private volatile boolean isPaused;

public Application() {
serverThread = null;
isRunning = false;
isPaused = false;
}

public synchronized void start() {
if(!isRunning) {
isRunning = true;
serverThread = new Thread(this);
serverThread.start();
}
}

public synchronized void stop() {
if(isRunning) {
isRunning = false;
try {
serverThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

public synchronized void pause() {
if(isRunning && !isPaused) {
isPaused = true;
}
}

public synchronized void unpause() {
if(isRunning && isPaused) {
isPaused = false;
}
}

protected abstract void setUp();

protected abstract void update();

protected abstract void cleanUp();

@Override
public void run() {
setUp();
while(isRunning) {
if(!isPaused) {
update();
}
}
cleanUp();
}
}

最糟糕的是,正确调试在不同线程上运行的程序可能非常困难

最佳答案

使用 IntelliJ 或 Eclipse 等调试器,它们具有设置断点的内置功能,然后在检查变量等时暂停应用程序的执行。

关于java - 对于可以在java中外部暂停和取消暂停的线程应用程序,是否有一个好的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56622652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com