zoukankan      html  css  js  c++  java
  • .NET的内存管理:排排坐,吃果果

    幼儿园有个教室,这个教室里有3排座位,第一排是10个座位,第二排是20个座位,第三排是40个座位,有一个老师名叫CLR,C老师就给这个教室起了名字叫“托管堆”。每天,如果有小朋友拿着果果进来,C老师就给分配一个座位,C老师有一套自己的分配座位方式:

    1. 如果第一排是空的,那就让来的小朋友依次在第一排座位上就坐,第一个进来的小朋友做第一个座位,第二个小朋友坐第二个座位,依次类推,进来的小朋友坐下后就开始吃果果(对托管堆对象的引用)

    2. 过了一会儿,第一排座位坐满了,可是又有小朋友来了,怎么办呢?C老师就对第一排座位的小朋友挨个检查,看哪个小朋友已经吃完手里的果果了,让吃完的小朋友出去,让出座位来,没吃完的小朋友怎么办呢?吃的慢就到依次换到第二排去慢慢吃(产生第二代对象)。这样第一排的座位就都空出来了(垃圾回收完成),然后安排新来的小朋友坐在第一排的第一个座位上

    3. 又过了一会儿,第一排座位又坐满了,C老师又要把其中一些没吃完的放在第二排,可是,发现第二排也坐满了,怎么办呢? 他就开始检查第二排的小朋友,哪个小朋友吃完了,就出去让出座位来,剩下的还没吃完了,再换到第三排继续吃(产生第三代对象),空出来的座位,让刚刚从第一排换来的小朋友坐。

  • 相关阅读:
    Day2-Python爬虫小练 爬取百科词条
    Day1-python轻量级爬虫
    大数据处理课堂测试1
    周记7-28
    周记7-21
    周记7-14
    软件工程课程总结
    进度15
    NABCD
    团队项目成员和题目
  • 原文地址:https://www.cnblogs.com/lbsong/p/1657522.html
Copyright © 2011-2022 走看看