java - 是否可以停止某个线程的运行?

标签 java swing thread-safety jframe

我一直在编写一个模拟,该模拟具有用于参数输入的 JFrame GUI,以及运行模拟动画的单独 JFrame

我将动画与模拟一起更新,因此对重绘的调用来自函数runsimulation()

我已经为我的主 GUI 框架添加了一个 EXIT_ON_CLOSE ,当动画运行时我可以关闭该框架并且它不会再次弹出,但我想知道是否可能当我关闭动画帧时关闭模拟线程。

因为目前当我关闭帧时,模拟会继续在后台运行并正确完成,但我希望动画帧上的关闭事件也成为“取消模拟”。

最佳答案

这里你有两个选择。一种选择是将正在运行的线程变成“守护进程”线程。这意味着该线程不会让程序保持运行,因此如果您关闭 JFrame 并退出应用程序,它将立即终止。

请注意,长时间运行的线程可能会在处理过程中突然终止。

(可能更好)的方法是在线程上调用 interrupt() ,并让线程定期检查 isInterrupted() ,如果标志是,则干净地退出设置。

关于java - 是否可以停止某个线程的运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109530/

相关文章:

java - 平板电脑可以打电话吗? (电话)

java - 由于 docker-machine 使用 vboxnet,Hazelcast 多播无法工作

java - 读取txt文件并将所有内容显示为粗体

java - 从线程创建附加线程的最有效方法是什么?

c# - 如何使用 BlockingCollection<> 解决生产者/消费者竞争条件

java - 将 manifest-first maven 项目的依赖打包到 jar 中

java - 如何在 JSF 模板中定义将在别处定义的 onLoad 函数

java - FTP 使用服务器中的文件和目录填充 jtree

java - java听按键的正确方法

C++ 线程安全映射