在运行方法中没有循环的Java线程
问题描述:
如果Java线程在其运行方法中没有循环,那么假设在运行方法完成后线程将被销毁是安全的。让我们考虑下面的代码,在运行方法中没有循环的Java线程
Thread t = new Thread(){
public void run(){
System.out.print("Hello World!");
}
};
t.start();
在上面的例子中,一旦run方法结束,我该如何将系统资源返回给系统?
答
假设一旦运行 方法完成后线程将被销毁是否安全。
是的。
如何将系统资源返还给系统?
对象引用(即内存资源)将被垃圾收集。不需要采取具体行动。
完成使用后,可以在finally
块中关闭文件,DB资源。
finally {
resource.close();
}
您也可以使用新的try with resources在Java 7中
+0
该问题的完美答案(+1) – asifsid88 2013-02-25 05:58:47
答
与定对象的所有系统资源被垃圾收集器释放,因为它认为合适的。
尽管资源确实会被退回,但不要立即或在有限的时间内依靠它们返回,这一点非常重要。从不依靠垃圾收集器在你想要的时候做某件事。 C++中的范围对象就是这种方式,但在java中并不如此。
某些资源可以手动释放(通常为obj.close()
方法),如文件和套接字。
你是什么意思与系统资源? – 2013-02-25 05:37:14
内存和CPU。 – user1917209 2013-02-25 05:41:15
当程序退出'main()'方法时,如何确保系统资源(内存和CPU)返回? – Apurv 2013-02-25 05:59:17