停止 Java 程序中间进程的 Java 紧急按钮

标签 java multithreading

some Function()
{  
    for(xxxxxx){
         //a infinite loop or just a long code loading an running stuff from a list
    }
}

ActionListener Panic(yyyyyyyy)
{
     Stops the infinite loop by list.clear() or insert some thing into the list and break the loop
}

我试图制作一个紧急按钮来停止我的代码,问题是当 Java 正在运行某些东西时,所有的 actionListener 都会排队并在我的大 for 循环完成它的东西后触发。这可能是一个愚蠢的问题,但我似乎无法弄清楚。我能想到的唯一解决方案是使它成为一个线程(有点困难,不确定它是否会起作用)或弹出消息询问用户是否要继续每个循环(提示太多)。只想有一个红色按钮可以打破循环并破坏程序,就像 linux 中的 Ctrl Z 和 eclipse 中的红色停止按钮或停止文件传输的取消按钮。

感谢观看 =D 非常感谢

哦顺便说一句,如果解决方案是 Thread,请把它放在我上面的例子中。我几乎不知道如何写一个线程 =(

最佳答案

如果你想停止一个无限(或很长)的循环,循环必须定期确保它是否没有被中断。

public class AlmostInfinite extends Thread {
    public void run() {
        while (!Thread.interrupted()) {
            /* Do some work, not too long */
        }
        cleanUp();
    }

    private cleanUp() {
        /* close network connections, files and other resources */
    }
}

ActionListener panic(AlmostInfinite t)
{
    t.interrupt();
}

关于停止 Java 程序中间进程的 Java 紧急按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940673/

相关文章:

java - Tomcat 运行但在尝试访问我的 html 时给出 404,但在安装后显示 tomcat 的默认页面

java - 我应该为每个线程创建一个连接吗?

java - 无法将 Java 中的 Azure Function 部署到 Azure 云上

java - Selenium - 在另一个类中调用方法,但无法重用驱动程序

java - 如何为 Java 应用程序构建 docker 容器

java - 如果其他线程正在等待,线程是否会隐式调用 notifyAll() ?

c# - WinForms 执行调用异步方法而不阻塞 UI 的同步方法

Python 在 futex 调用中挂起

JavaSE : First thread to call a method interrupts all other threads

java - 替换 ":"之后的文本