繁体   English   中英

摆动和螺纹

[英]Swing and Threads

我有一个Swing界面,当我单击按钮时,会在无穷大处创建一个线程(属while(true)...)。

我的问题是:当我关闭主进程时,创建的线程会自动关闭吗?

取决于您启动的线程是否是守护程序线程,以及如何关闭主进程。

以下是标准库中的相关文档

Java虚拟机启动时,通常只有一个非守护线程(通常调用某些指定类的名为main的方法)。 Java虚拟机将继续执行线程, 直到发生以下任何一种情况

  • 已调用类Runtime的退出方法,并且安全管理器已允许进行退出操作。

  • 不是守护程序线程的所有线程都已死,要么通过从调用返回到run方法,要么抛出传播到run方法之外的异常。

因此,如果通过System.exit或使用jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)关闭主进程,则所有线程将在您关闭时死亡。

如果仅让主线程(运行public static void main的线程)脱离main方法的边缘,那么这些线程将继续运行。

是的,只要未将其设置为守护程序线程即可。 您可以使用jps工具查看已检测的JVM:

jps -l

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM