C# CLR核心机制
之前一直搞不懂 垃圾回收机制 ,今天闲着没事,研究了一下,
~ 析构函数 主要是用来解释非托管资源,等着gc 的时候把非托管资源释放掉,系统自动回收, gc 回收的时候 clr 一定会抵用的,但是有延迟,
dispose( 也是释放非托管资源,主动释放 方法本身没有意义) 一般配合using的快捷方式 自使用者自己调用这个方法。
析构函数释放是, 是放入一个队列里面 ,等待后续线程来释放资源。但不知道什么是调用
~SubmitMessage() { log($"折行{this.GetType().Name}的Dispose~"); }
析构被动释放 dispose 程序员可以主动释放
gc的时候不会主动调用dispose方法 是程序员自己调用的方法。但是析构函数 会被调用 不过要等一会儿。
gc 的策略是 1 大对象 单独存放,链表式存储结构(有碎片) 2 分级处理 分0 、1、2 等级 内存紧密排列存储结构