国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.net回收機制的使用

2024-07-10 13:11:10
字體:
來源:轉載
供稿:網友
   一個被終止的對象常駐內存重而不被使用的話,會占用很多系統資源,于是.net的垃圾回收器就會將它放在中止化隊列中,一旦時機成熟,該對象就會被喚醒,并調用他的finalize方法,來徹底的終結他,但是利用這一機制,就可以將耗費資源的巨型類放入到一個對象池中,在程序的整個生存期內重復的使用他(結束的標志是clr認為在進程中不存在任何該應用程序的根)。我們稱這些巨型類為expensive對象,下面來討論一下管理expensive對象的對象池的結構。

class expensive{

static stack pool = new stack();

 

public static expensive getobjectfrompool(){

retun (expensive) pool.pop();

}

 

public static void shutdownthepool(){

pool = null;

}

public expensive(){

//先構造對象

pool.push(this);

}

finalize (){

if(pool!=null){

gc.registerforfinally(this;)//先把他叫醒挨宰

pool.push(this);//將“清醒的”對象加入到對象池中,讓他起死回生

}

}

}

 

class app{

static void main(){

new expensive();

……

expensive e = expensiv. getobjectfrompool();

//下面就可以使用e了

expensive.shutdownthepool();//關閉應用程序前,先關閉對象池,否則會在內存中留下“孔洞”,因為finalize已經被重寫了

}

}

中國最大的web開發資源網站及技術社區,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通城县| 宣化县| 胶南市| 桂林市| 呼图壁县| 祁阳县| 克山县| 湖州市| 镇远县| 山东| 额尔古纳市| 沈阳市| 新沂市| 铜鼓县| 常山县| 靖州| 永寿县| 浦县| 龙游县| 西吉县| 长乐市| 印江| 公主岭市| 信宜市| 泰兴市| 深圳市| 镇巴县| 庆城县| 昌江| 宾阳县| 岳阳市| 贵阳市| 富民县| 宿州市| 沐川县| 锡林郭勒盟| 将乐县| 台州市| 马边| 庆阳市| 邓州市|