i.Posei's blog

Happiness only real when shared!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

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

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

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