如果Java線程在其運行方法中沒有循環,那麼假設在運行方法完成後線程將被銷燬是安全的。讓我們考慮下面的代碼,在運行方法中沒有循環的Java線程
Thread t = new Thread(){
public void run(){
System.out.print("Hello World!");
}
};
t.start();
在上面的例子中,一旦run方法結束,我該如何將系統資源返回給系統?
如果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中
該問題的完美答案(+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