它们的门类对象指针指为自身。它的色对象指针指于自家。

近年来在羁押开,看到了靶在内存中之仓储方。

最近在看开,看到了目标在内存中的仓储方。

谈话到了目标存储于内存堆中,分配的空间除了项目对象的成员所待的外存量,还有额外的分子(类型对象指针、 同步块索引 ),看到这个自家不怕起硌不掌握了,不知晓路对象指针是啊,指向的什么?

讲到了目标存储在内存堆中,分配的半空中除了项目对象的积极分子所欲的外存量,还有额外的成员(类型对象指针、 同步块索引 ),看到这自家就发接触未亮堂了,不掌握路对象指针是什么,指向的哎?

自网上寻找呢不曾找到,最后向下看,书中多少描述。说生自家的晓:

自网上搜寻呢没找到,最后为下看,书被略描述。说生自己的理解:

色对象指针:指向类型对象存储的地点,假如发生一个品类Person,它在积着起一样片区域存储它们其中的字段和分子及个别个附加成员(类型对象指针、 同步块索引 ),类型对象的型对象指针指向的凡System.Type的地点。

类对象指针:指向类型对象存储的地点,假如有一个型Person,它以积着生同一块区域存储它们其中的字段和成员和个别只附加成员(类型对象指针、 同步块索引 ),类型对象的类对象指针指向的凡System.Type的地方。

为Person类型在内存中相对于System.Type为是当做一个靶存在的,System.Type类型也是一个类对象,它的类对象指针指为自身;

坐Person类型在内存中相对于System.Type也是作一个目标在的,System.Type类型也是一个色对象,它的种对象指针指于自己;

实例化一个Person对象,Person p = new
Person(); p对象在内存堆中吗分配一片区域存储它们里面的字段和分子与个别独附加成员(类型对象指针、 同步块索引 ),p的品类对象指针指为Person类型在积着之地点。

实例化一个Person对象,Person p = new
Person(); p对象在内存堆着吗分配一块区域存储它们里面的字段和成员与个别只附加成员(类型对象指针、 同步块索引 ),p的型对象指针指于Person类型在积着之地方。

 

 

以及步块索引:先说一下协办块,.NET团队当计划中心框架时充分考虑了线程同步的题材,其结果就是.NET为各一个堆内对象还提供了支撑线程同步的效用,这即是一道机制的雏形【参考:http://genwoxuedotnet.blog.51cto.com/1852748/504107】

同步块索引:先说一下联名块,.NET团队于统筹为主框架时充分考虑了线程同步的题目,其结果就是是.NET为各级一个堆内对象还提供了支持线程同步的效能,这就算是并机制的雏形【参考:http://genwoxuedotnet.blog.51cto.com/1852748/504107】

可是针对每个堆内对象都分配同步块有一个于充分的害处,就是如此增大了内存的淘。在形似的体系被,需要并机制支持之靶子可能不过占少数,这样于多数对象的话,一个齐声块的内存消耗就全盘让荒废了。鉴于这或多或少,.NET框架下了一致种植折中之方,就是实际只有为每个堆内对象分配一个一头索引,该索引中不过保留一个标志数组内索引的整数。.NET以加载时见面新建一个齐片数组,当有对象要为联合时,.NET会吗那个分配一个一块块,并且把欠伙块当共同块数组中之目加入该目标的齐块索引中。

然而针对每个堆内对象都分配同步块来一个于充分的弊病,就是如此增大了内存的吃。在相似的体系遭到,需要共同机制支持之目标或只有占少数,这样对大部分靶的话,一个联合块的内存消耗就了让浪费了。鉴于这一点,.NET框架下了同栽折中之方法,就是实在只有吧每个堆内对象分配一个联袂索引,该索引中单单保留一个标明数组内索引的整数。.NET于加载时会新建一个协同片数组,当有对象需要让一并时,.NET会为夫分配一个并块,并且将该旅块当齐块数组中的目加入该对象的一起块索引中。

暨步块机制包含如下的几乎接触:
·
在.NET被加载时初始化同步块数组。
·
每一个给分配在积上的对象都见面蕴藏两个附加的字段,其中一个储存类型指针,而另外一个纵伙块索引,初始时于赋值为-1。
·
当一个线程试图动用该对象上同步时,会检查该对象的联合索引。如果索引为负数,则会在联名块数组中追寻抑或新建一个旅块,并且将一头块的索引值写副该对象的同步索引中。如果该目标的同步索引不也负值,则找到该目标的联合块并且检查是不是出任何线程在运用该伙块,如果出则跻身等状态,如果无则说明使用该同步块。

暨步块机制包含如下的几触及:
·
在.NET被加载时初始化同步块数组。
·
每一个于分配在积上的靶子都见面包含两只附加的字段,其中一个储存类型指针,而除此以外一个不怕同块索引,初始时吃赋值为-1。
·
当一个线程试图利用该目标上同步时,会检讨该目标的一道索引。如果索引为负数,则会以共块数组中搜寻抑或新建一个联合块,并且把共同块的索引值写副该对象的同步索引中。如果该目标的同步索引不也负值,则找到该目标的一起块并且检查是不是出另线程在使该联合块,如果来则上待状态,如果没有则表明使用该同步块。

以及步块是指.NET维护的联名片数组中之之一元素

暨步块是指.NET维护的一起块数组中之之一元素