.NET的内存管理:排排坐,吃果果

news/2024/7/20 13:22:34 标签: 内存管理

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

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

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

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

转载于:https://www.cnblogs.com/lbsong/archive/2010/01/27/1657522.html


http://www.niftyadmin.cn/n/1100372.html

相关文章

C# 类型universe无法解析程序集 解决方法

问题描述-"类型Universe无法解析程序集"的由来 今天使用第三方控件DundasChart在vs2010新建的工程下做开发,当从工具箱往新建工程的新窗体拖动控件时提示"类型Universe无法解析程序集:System.Design,Version2.0.0.0,Cultureneutral,Publi…

Excel C# Excel 操作 [ 转载] Microsoft.Office.Interop.Excel 讀 / 寫 Excel 語法概全

转载] Microsoft.Office.Interop.Excel 讀 / 寫 Excel 語法概全 Windows技术 2009-11-17 21:19:15 阅读249 评论1 字号:大中小 Excel是相當好用的”傢絲”大部份的電腦都會安裝,用它來展現報表是相當方便;若是對方的電腦沒有安裝EXCEL&#…

虎尾兰养殖

多年生草本(Sansevieria)植物有60余种,原产于非洲、亚洲热带。植株高度因品种而异,从10数米至1米不等。叶肉质状,有圆筒形、剑形、广披针形等,簇生于地下根茎,叶面有各种不同形态的斑纹变化。成…

MySQL修改密码 MySQL忘记密码的解决办法

MySQL 忘记口令的解决办法 如果 MySQL 正在运行,首先杀之: killall -TERM MySQLd。启动 MySQL :bin/safe_MySQLd --skip-grant-tables & 就可以不需要密码就进入 MySQL 了。 然后就是: >use MySQL >update user set pa…

2.面向对象

Delphi2面向对象的编程方法 Delphi的编程语言是以Pascal为基础的。Pascal语言具有可读性好、编写容易的特点,这使得它很适合作为基础的开发语言。同时,使用编译器创建的应用程序只生成单个可执行文件(.EXE),正是这种结合,使得Pasc…

正则表达式提取中文

如果在一段字符串文本中得到所有中文字符的话,可以使用下边程序来实现。 publicstaticstringGetChineseWord(stringoriText){ stringx "[\u4E00-\u9FFF]"; MatchCollection Matches Regex.Matches(oriText, x, RegexOptions.IgnoreCase); String…

C# richtextbox里的string字符串以换行作为Split的参数分隔符

今天在C#textbox多行文本里想随机获取一行字符串,首先得以换行作为分隔符,于是百度一下发现string[] txtTitleRows txtTitle.Text.Split(Environment.NewLine.ToCharArray());上面这种方法会在元素中的末尾加上\r,这肯定不是我们想要的&…

C#多线程后台获取网页源码

C#多线程后台获取网页源码: public string GetWebPageResponse(string uriArg){System.IO.Stream responseStream System.Net.WebRequest.Create(uriArg).GetResponse().GetResponseStream();System.IO.StreamReader reader new System.IO.StreamReader(responseS…