我有一些正在存储结果的搜索线程。我知道当线程启动时,JVM本机代码代理请求在操作系统上创建新的本机线程。这需要JVM之外的一些内存。当线程死亡时,我保留对它的引用并将其用作POJO。它是否仍然作为本机线程存在于操作系统(并使用jvm之外的内存)?
No。当Thread.start()
被调用时,实际上创建并启动了一个OS线程,当该线程停止运行时,它就不再存在了。无论用于启动线程的Thread类型的Java对象是否被垃圾收集,都不会改变任何东西。