Java中的用户线程和守护进程线程有什么区别?

2022-09-01 17:32:04

可能的重复:
Java中的
守护进程线程是什么 守护进程线程什么时候有用?

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

你能告诉我:

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

答案 1

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

另外,您的问题已经在这里提出(并回答了) - Java中的Daemon线程是什么?

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

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

答案 2

第二个问题 :

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

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


推荐