2014-05-08 139 views
0

我有一些搜索线程正在存储结果。我知道线程何时启动JVM本地代码代理在OS上创建新本机线程的请求。这需要JVM之外的一些内存。当线程死亡时会发生什么,我继续引用它并将其用作POJO。它是否仍然存在于本地线程到OS(并使用jvm以外的内存)?无效Java线程和本地操作系统线程

+0

新的os线程仍在java(jvm)进程中运行。不要将线程与进程混淆。 – salyh

+2

你应该在线程中存储任何东西。例如像Futures和ExecutorServices,即使线程正在执行其他操作或未运行,未来也可以存储值。即您应该设计您的系统,因此无关紧要。 –

+0

对不起,我特别要求在相应的java线程死亡时OS线程会发生什么情况,但是由于某些引用而未收集。从JB Nizet的答案我明白,OS线程停止存在。 – Taks

回答

2

否。当调用Thread.start()时,实际创建并启动了OS线程,并在线程停止运行时停止存在。无论是用于启动线程的Thread类型的Java对象是否被垃圾收集,都不会改变任何内容。