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

首頁 > 學院 > 開發設計 > 正文

.net回收機制的使用

2019-11-18 17:17:21
字體:
來源:轉載
供稿:網友

    一個被終止的對象常駐內存重而不被使用的話,會占用很多系統資源,于是.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已經被重寫了

}

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绩溪县| 吴桥县| 瓦房店市| 广宁县| 卓尼县| 黎平县| 抚宁县| 汤阴县| 涿鹿县| 鄂托克前旗| 梧州市| 平陆县| 海原县| 会泽县| 新丰县| 齐齐哈尔市| 同心县| 从化市| 哈巴河县| 孟津县| 民勤县| 顺昌县| 东兰县| 藁城市| 抚顺市| 仪征市| 芜湖县| 松阳县| 朝阳市| 巴南区| 周口市| 江阴市| 乐都县| 镇远县| 咸宁市| 彭阳县| 九寨沟县| 金塔县| 湘阴县| 屏南县| 桃园市|