我用JNA寫了一個操作行程的程式,類析構時需要用CloseHandle()函式關閉行程句柄
大概這么寫
class Process {
private HANDLE handle
public Process(HANDLE h) {
handle = h;
}
......
@Override
public void finalize(){
CloseHandle(handle);
}
}
使用時:
// in method main()
Process p = new Process(handle);
...
p = null;
System.gc();
但這樣寫的話感覺有點麻煩,有沒有什么更為便捷的方法?
uj5u.com熱心網友回復:
直接呼叫CloseHandle(handle);就行,不要寫finalize(),這個無法保證一定會執行,jdk10+已棄用此方法uj5u.com熱心網友回復:
不要這么做,而要在一個可靠的,具體的代碼觸發點來關閉句柄。Java 的 finalize() 概念是一個已經被剔除了的概念,不要想著利用它做任何事。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/41391.html
標籤:Java SE
上一篇:jvm 的GC 有人講下嗎
