gpt4 book ai didi

java - 确保主应用程序崩溃时停止无限循环线程

转载 作者:行者123 更新时间:2023-12-01 20:21:58 24 4
gpt4 key购买 nike

我创建了一个 Runnable 类,负责监视目录中的文件更改。

... imports ...

public class ExamplePathWatch implments Runnable {
...
private boolean isRunning = true;
...

@Override
public void run() {
while(isRunning) {
[1]... wait for a file change ...
[2]... notify listeners of file change (if any) ...
}
}

public synchronized void stopPathWatch() {
isRunning = false;
... interrupt [1] and allow the thred to exit immediately...
}

线程在[1]处暂停,直到发生文件更改,或者调用stopPathWatch()方法来设置isRunning = false并且中断当前在[1]的等待。

在主应用程序退出之前,将调用 stopPathWatch(),这允许线程退出并完全终止整个应用程序。

我的问题是,当应用程序崩溃时,主应用程序会终止,而不会调用 stopPathWatch() 。因此,应用程序会在后台无限期地运行,直到被操作系统杀死。

由于应用程序的开发非常活跃,并且并非所有异常都得到处理,是否有推荐的方法来确保无论主应用程序如何终止,子线程都会停止?

谢谢

最佳答案

您可以将ExamplePathWatch 作为守护线程运行。只有未标记为守护进程的线程才会阻止应用程序退出。

关于java - 确保主应用程序崩溃时停止无限循环线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15248885/

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