Mar*_*lsi 0 java swing multithreading
我有一个Swing界面,当我点击一个按钮时,一个线程是在无限远处创建的(属时为(true)...).
我的问题是:当我关闭主进程时,创建的线程会自动关闭吗?
取决于您启动的线程是否是守护程序线程,以及如何关闭主进程.
以下是标准库中的相关文档:
当Java虚拟机启动时,通常会有一个非守护程序线程(通常调用某个指定类的名为main的方法).Java虚拟机继续执行线程,直到发生以下任一情况:
已调用类Runtime的exit方法,并且安全管理器已允许执行退出操作.
所有非守护程序线程的线程都已死亡,无论是通过从run方法调用返回还是抛出传播超出run方法的异常.
因此,如果您通过System.exit或关闭主进程,则关闭时jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)所有线程都将死亡.
如果你只是让主线程(线程运行public static void main)从main方法的边缘掉落,那么线程将继续运行.