我知道守护线程后台线程。我们可以通过调用setDaemon(true)来创建我们自己的守护线程。
我的问题是:为什么以及何时需要将我们的线程创建为守护线程?
发布于 2011-08-16 00:24:57
当所有正在运行的线程都是守护线程时,JVM退出。所以想象一下,你正在写一个简单的游戏,你的main方法一直循环到你决定退出。想象一下,在游戏开始时,你启动了一个线程,它将无休止地轮询一些网站以触发警报。您可能希望JVM在您决定结束游戏时退出。您不希望无休止的轮询阻止游戏结束。因此,您将此轮询线程设置为守护线程。
发布于 2011-08-16 00:25:01
当所有“正常”线程都终止时,JVM会自动终止一个守护线程。普通线程永远不会自动终止。
发布于 2011-08-16 00:26:12
将用户线程设置为守护进程的主要用例是,您希望以用户线程的方式提供给消费者而不需要任何用户交互的服务。
因此,在用户线程存在之前,JVM可以保证守护线程持续运行。你可以找到像GC,UI Thread这样的例子。这些是守护进程。
希望能有所帮助。
https://stackoverflow.com/questions/7067578
复制相似问题