i.Posei's blog

Happiness only real when shared!
posts - 59, comments - 256, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

基础 - .Net中的内存管理技术

Posted on 2006-02-28 17:41 i.Posei 阅读(291) 评论(0) 编辑 收藏
     .Net的所有引用类型的托管对象都在托管堆中分配。公共运行库负着为托管堆中的每个对象维持一个引用计数器。同时公共运行库维护一个垃圾收集线程,该线程负责检查对象的引用计数,一旦某对象的引用计数为0,那么该对象占用的资源就被垃圾收集线程释放。

     对值类型的对象,公共语言将在托管堆栈中分配内存。一旦超过对象的作用域,该对象占用的内存将自动释放。如果该值类型的对象包含了其他引用型对象的引用,公共运行库在销毁值对象的时候,还会将它从所引用对象的引用列表中移走。如果这个动作导致所引用的对象的引用队列为空,则该对象就可能被垃圾收集线程回收。

——摘录至《精通.Net核心技术》