温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
同学们大家好,接下来给大家介绍S的锁的种类及升级变化的流程和步骤,给大家演示一下什么叫所升级。那么结合我们前面所讲的。对。内存布局和。对向头mark word的标识从无所偏向、所轻向锁、重量锁,我们将结合前面的对象头给大家演示一下偏向的所谓和锁的标志位,各种状态底层的变化。好,那么同学们开工。首先。对于多线程的访问情况呢,一般分三种。在代码程序里面也加了snchize了,第一种只有一个线程来访问,有且仅有一个线程only one,哎,也就是他确实加锁了,但这个时候呢,是低并发的情况啊,那么只有一个现场来访问这个。长什么样会变成什么样的效果?第二种情况,线程开始多了,有两个线程来交替访问,那么这个时候长什么样,会变成什么情况,以及后面的锁的标识位会有什么样的变化和状态的升级。第三种没什么好说。
01:07
一个两个多个,慢慢的越来越多,那么自然而然总有一些县城抢不到,那么会形成阻塞,那么所以说这种情况下竞争极其激烈甚至惨烈的话,最终会升级到我们的重量极所好,那么他们各种升级的变化和所标之类的状况,需要给大家详细清晰的证明和说明清楚。那么下面。要明白S,它的所得升级流程是依赖于存在Java对象mawa当中所升级的功能。主要依据。主要依赖依据于马二中所标志位和示范偏向所的标志位,那么也就是我们说穿了就是后面这三个OK,那么当然这你可以全部补零,当做是000,那么就轻轻量所010,你就重量级所都一样哈,其实主要是这个是决定是否偏向后两位是决定锁的标志位,那么来64位图,我们这呢也已经看过么?最终端关于所的指向啊,它是什么样的状态,标志位的变化,那么就三句话请大家。
02:10
提前牢记第一个。如果是偏向所马word对象头的对象标记存储的是偏向的线程ID,那么来同学们是什么偏向所前54位当前线程指针OK,线程ID,那么就是偏向锁的这个,那么好,这是第一种,第二种。轻量所马存储的是指向线程站桩lock所的记录的这个指针,那么也就是指向线程站桩lock。Record的指针。第三个马尔的存储的是指向中的,注意这个是在站中,这个是在堆中的模塔对象的指针,OK,那么好指向互斥,就是没text lock那个重量级所的那个指针,好吧,那么这直线上ID后面这两个是指针来,那么在这块是我们所的指向相关的一个基础知识,后续我们会对前后对照来印证,来给大家说做更多进一步的说明,那么接下来我们将从五所我们结合我们前面的对象头给大家做演示升级流程,先给大家解释到。
我来说两句