use*_*818 5 java linux multithreading daemon
我在Linux上遇到了守护程序线程的问题.我在Windows服务器上的应用程序运行正常,当我创建一个线程转储时,我可以看到一个线程是否是守护进程.
但是当我在Linux服务器上将我的应用程序移动到Tomcat并使用Java Visual VM创建转储时,我不再在线程的详细信息中看到该守护程序.
这是否意味着守护程序线程仅适用于Windows?是否有一些解决方法或我们是否需要在应用程序退出时关闭每个线程?
小智 2
http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/threads.html - 这似乎表明 Visual VM 可以很好地处理普通线程和守护线程。我在 Visual Vm 中使用了实时监视器,它在 Linux 上运行得很好。
但是,当我将应用程序移至 Linux 服务器上的 Tomcat 并使用 Java Visual > VM 创建转储时,我再也看不到线程详细信息中的守护进程了。
您可以仅显示示例输出吗?
这是否意味着守护线程只能在 Windows 上工作?
不!守护线程在 Linux 上工作得很好。
是否有一些解决方法,或者我们是否需要在应用程序退出时关闭每个线程?
当进程终止时,操作系统负责获取所有关联的资源,包括线程。因此,您无需执行任何操作。事实上,顺便说一句,JVM 不允许您直接处理线程的生命周期。