Java Eclipse调试器:线程vs";守护进程;线程

Java Eclipse调试器:线程vs";守护进程;线程,java,eclipse,multithreading,debugging,daemon,Java,Eclipse,Multithreading,Debugging,Daemon,每当我在Eclipse中运行调试配置(“调试会话”)并切换到调试透视图时,我总是在调用堆栈视图中看到“线程”和“守护线程” 为什么有些线程只是守护进程,而其他线程只是pot(普通的旧线程)?提前谢谢 (注意:我不是问什么是守护进程,或者什么是守护进程线程,而是问Eclipse如何确定哪些线程是守护进程。)守护进程线程是任何调用了setDamon(true)的线程。或者是守护进程线程的子线程。我猜eclipse使用isDaemon()来确定哪些线程是守护进程。Java中的守护进程线程是在后台运行的

每当我在Eclipse中运行调试配置(“调试会话”)并切换到调试透视图时,我总是在调用堆栈视图中看到“线程”和“守护线程”

为什么有些线程只是守护进程,而其他线程只是pot(普通的旧线程)?提前谢谢


(注意:我不是问什么是守护进程,或者什么是守护进程线程,而是问Eclipse如何确定哪些线程是守护进程。)

守护进程线程是任何调用了setDamon(true)的线程。或者是守护进程线程的子线程。我猜eclipse使用isDaemon()来确定哪些线程是守护进程。

Java中的守护进程线程是在后台运行的线程(主要由JVM创建),用于执行后台任务(如垃圾收集)。守护进程线程和用户线程之间的主要区别在于,一旦所有用户线程完成执行,Java就会终止自身。JVM不会等待守护进程线程完成它们的执行

请注意,您可以通过
setDaemon(true)
(必须在调用线程的
start()
方法之前调用)将用户线程创建的线程作为守护进程线程。
为了让程序继续运行,它必须始终至少有一个活动用户线程


Eclipse和您一样,可以轻松地检查线程是否为isDaemon()。

当所有非守护进程线程终止时,JVM将退出。因此,守护进程线程用于守护进程任务,即不应阻止JVM退出的任务

创建
线程
对象时,可以在
线程
上调用
setDaemon(true)
,并将其标记为守护进程

然后可以在线程上调用
isDaemon()
,以确定该线程是否已标记为守护进程


eclipse调试器正在读取此标志。

只是推测,但是调用
isDaemon()
方法可能是一种方法。这有什么关系?这是一个纯粹好奇的问题。如果您的怀疑是正确的,那么我想您可以将我的问题解释为“
*为什么有些线程是.isDaemon(),是什么驱动了它?
*”有一个
setDaemon()
方法可以将其设置为守护进程。您的问题很不清楚-如果您唯一要问的问题是在底部的括号中,那为什么它在底部的一个括号里?把它放在上面,让它听起来不像你不知道dameon线程是什么,如果你真的知道的话。OP中的每个“注意”似乎都不能回答这个问题。@djechlin注意到OP在我回答后更改了他的问题,我在他所做的更改后更新了我的答案。尽管这个问题没有显示任何编辑历史,这是我的理解,如果问题被编辑,应该总是有一个。@djechlin可能是我,直到最后才阅读问题。哈哈,无论如何。。我更新了我的答案,谢谢你的评论。