java中的用户线程和守护程序线程有什么区别?

lic*_*gwu 22 java jvm thread-safety

可能重复:
java
中的守护程序线程什么时候守护程序线程有用吗?

我对Java中用户线程和守护程序线程之间的区别感到困惑.

你能告诉我吗:

  1. Java中的用户线程和守护程序线程之间有什么区别?
  2. 在哪种情况下会使用守护程序线程?你能举个例子吗?

rad*_*dai 19

一旦最后一个非jvm线程终止,JVM将退出.这意味着如果您创建的任何线程仍在运行,则jvm将不会关闭.守护程序线程是不阻止JVM关闭的线程.通常你会将它们用于某些后台任务,如果用户要求它关闭,你不希望保留你的应用程序.

此外,您的问题已经在这里被问及(并回答) - Java中的守护程序线程是什么?

一些常见的(来自个人经验)守护程序线程的用例可能包括

  • 轮询远程系统以进行状态更改的后台线程
  • 后台工作线程(发送电子邮件通知,snmp等等)
  • 自定义计时器线程用于执行计划维护


rai*_*mar 5

第二个问题:

当所有正常线程都终止时,守护线程会自动终止。

您可以使用守护线程在应用程序中进行一些内务处理或清理。守护线程用于后台支持任务,并且仅在普通线程执行时才需要。GC线程是守护线程。