代码改变世界

随笔分类 - CLR探索系列

揭示同步块索引(下):总结

2009-08-18 15:57 by 横刀天笑, 2896 阅读, 收藏, 编辑
摘要:前面,我用两篇文章详细的讨论了同步块索引在lock和GetHashCode所起的作用。不过两篇文章是分开来讨论的。那可能有人会问,如果我有一个object,它既作为lock的lockHelper对象那同步块索引该是个什么样子的呢?本篇文章将对同步块索引的用途和结构做一个概述性的总结。 阅读全文

揭示同步块索引(中):如何获得对象的HashCode

2009-08-13 22:44 by 横刀天笑, 5471 阅读, 收藏, 编辑
摘要:不起眼的同步块索引(SyncBlockIndex),占据着对象头部4个字节,几乎没有什么文档记录,但却起着举足轻重的作用。同步块索引到底是如何完成多重的职责?什么,HashCode也与这个同步块索引有关?风马牛不相及的两个东东怎么碰到一起了呢? 阅读全文

.NET中的那些受特别对待的类型(CriticalFinalizerObject)

2009-08-09 21:32 by 横刀天笑, 3354 阅读, 收藏, 编辑
摘要:股票里面有个ST股,就是Special Treatment的意思。就是对那些财务出现异常的上市公司,特别处理,在股票名字前面挂个ST,警示投资者注意风险。 这是题外话,今天我们要谈的是,在.NET的世界里,也有这么一些类型啊,受特别的对待(世界的不公平无处不在啊)。当EE碰到这些类型时,并不是像普通的类型那样去对待。我“龌龊”的给这些类型起个名字: ST Type。那到底有哪些类型呢,就我目前所知道的有...... 阅读全文

揭示同步块索引(上):从lock开始

2009-03-13 12:27 by 横刀天笑, 7610 阅读, 收藏, 编辑
摘要:大家都知道引用类型对象除实例字段的开销外,还有两个字段的开销:类型指针和同步块索引(SyncBlockIndex)。同步块索引这个东西比起它的兄弟类型指针更少受人关注,显得有点冷落,其实此兄功力非凡,在CLR里可谓叱咤风云,很多功能都要借助它来实现。 接下来我会用三篇来介绍同步块索引在.NET中的所作所为。 阅读全文