Java线程完成后是否被删除
假设我使用下面的方法每隔几秒钟生成一个线程,并且每个线程大约需要一秒钟才能完成。完成的线程会被删除吗?
new Thread (new myRunnableClass()).start();
回答:
线程完成后立即释放本机OS级线程(完成时大约释放run()
),但是线程对象像其他任何对象一样存活,直到无法访问并且垃圾回收器感觉像在运行。
知道Thread
(在 Sun的
Oracle实施中,任何人)都有一个私有方法,当线程退出时,VM会调用该私有方法,该方法会积极地使多个字段为空,包括一个指向构造函数Runnable
集的字段Thread(Runnable)
。因此,即使您保留对的引用Thread
,无论执行完什么,它都将被释放。
以上是 Java线程完成后是否被删除 的全部内容, 来源链接: utcz.com/qa/399889.html