Dav*_*ave 12 java concurrency multithreading
假设我使用下面的方法每隔几秒生成一个线程,每个线程需要大约一秒钟才能完成.完成的线程是否被删除?
new Thread (new myRunnableClass()).start();
Run Code Online (Sandbox Code Playgroud)
一旦线程完成,就会释放本机的OS级线程(大约run()完成时),但线程对象与任何其他对象一样,直到它变得无法访问并且垃圾收集器感觉就像运行一样.
编辑:这也可能是有趣的,知道Thread(在Sun的 Oracle实现,anywho)具有VM称为私有方法当线程退出时,其积极的NULL多个领域,其中包括一个参照Runnable设置由Thread(Runnable)构造函数.因此,即使您保留对该引用的引用Thread,也将释放完成执行后不需要的内容.
我不会把它称为删除.一旦线程完成,它将进入死状态,准备好由JVM进行垃圾回收.
| 归档时间: |
|
| 查看次数: |
7775 次 |
| 最近记录: |