2014-05-08 60 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對象是否被垃圾收集,都不會改變任何內容。