00:00
好,各位同学,上面这段理论已经给大家说完了。那么相信大家呢,理解起来还是稍微有点困难,还没有吃透,别着急,来我们代码说话,在跑代码之前看一下第一个。当一个对象已经计算过一致性哈希玛后,它就再也无法进入偏向所状态。那么换句话说,哈希玛和偏向所不共存。OK,这是第一句话,第二个已经是偏向锁的状态。这个时候在偏向所状态的前提下,你找我要哈希玛,对不起,我这儿拿不出来。那么为了。响应你这个请求,我立刻会把偏向所的状态撤销升级,为什么重量级锁好,那么同学们请跟着我来第一种。当一个对象已经计算过哈希code的时候。无法进入偏向锁状态。跳过偏向所直接升级,为什么轻量级锁OK,那么也就是我们刚才所说这句话,它就再也无法进入偏向锁状态,那么没有办法进偏向锁,只能锁只能升级吗?升到谁升到轻量所?所以说在这段,那么同学们。
01:10
请看杨哥的代码演示啊么,这些代码呢,非常简单,我呢也就不再编写了,那么这些呢,前面都写过,那么大家看,停五秒钟,你有个对象么?首先啊。五秒钟以后默认是不是就应该是偏向所好?那么同学们干脆啊,我为了给大家清晰一些,我先这么干,1234就四行代码。OK,那么所以说这五秒钟是保证开启偏向索,前面我们说过了,有默认四秒钟的延时,对吧,那么来同学们。后台也没有加什么参数,最原生版本的,那么来同学们。看一下我们的执行效果,本应是偏向所,偏向所应该是什么101对不对?那么来,同学们请看。本应是偏向锁是否正确,尾号是不是101对吧,那么现在没有任何一个SNCH来加锁,但是我们就是等了五秒钟以后,默认直接就刷到了偏向所,好,那么结合刚才我们这句话,现在这个是偏向所没问题,但是我现在。
02:11
告诉你,你现在偏向所是这样一个情况,我马上要你给我拿出哈code,对不起干嘛,我们两个怎么着没法一起共存,那么当然啊,我们这个哈code默认,也就是说你不要去用这个系统自带的啊,你没有去发生过特别复杂的这个复写,那么结论就是当一个对象已经计算过这个哈code以后,他就无法再进入偏向锁状态,那么来开始偏向锁,我在偏向锁的前提下,你给我干了个哈,我拿不出来,所以说。我就会从本来的偏向所。由于你计算过哈code马上升级为轻量级所,那么根据我们前面所讲解的内容,轻量级所是什么可以和这个哈code共存的,听懂了吧?所以说呢,同学们请看。杨哥演示的效果走一下,那么。
03:01
稍微耐心等待,因为有五秒钟等着后台出来,那么来同学们请看本应该是偏向锁吧,来,一开始是不是101符合,但是马上给我来一个哈code,你要让给我出这么一个函数的调用,那么这个时候请看从偏向所变成了什么零零,那么请问是不是从101变成了零零什么东东轻量级所OK,所以说呢,这个呢,回答大家我们的第一个问题非常重要,好,第二个问题请看偏向所的过程当中,就是说我已经是偏向所了,在偏向所的过程当中遇到了一致性哈希的请求,就是哈希扣的方法调用,立马撤销偏向所膨胀,为什么或者叫升级,为什么重量级锁,那么也就是说在这。相当于马的保存重量。极所它会占。Object莫类中有字段可以记录非加锁状态下的马,那么自然也可以保存原来的哈希编码,OK,所以说轻量级锁和重量级锁都可以跟那些哈希编码是共存的,那么来那么这块我们应该怎么用呢?
04:06
同学们请看,和刚才一样,那么这段代码,那么我就先把它注掉,OK,来下面。请看。老规矩。先睡五秒钟,保证偏向锁开启,然后注意此时现在这个是不是就是一个偏向锁,在偏向锁的前提下怎么着我。偏向锁的这个过程当中,我要调用哈扣,那么立马撤销偏向锁的模式,立刻膨胀为重量级锁,OK,好,同学们,我们来演示一下。来,大家看一下我们的演示效果。五秒钟啊,稍微等他一会儿那。偏向锁过程中遇到一致性,哈希立马撤销,来,同学们请看一下。最后的尾号是多少幺零,重量级所多少幺零,哎,所以说这个时候我们就会得到其实质而言啊,他们两个。
05:04
难以共存,如果你用哈扣的时候,它自动会给你变身为轻量或者是重量,那么在这就可以看得看得出。本意是偏向左。哈code升级为轻量级所,第二种已经是偏向锁的过程当中遇到了哈code,那么立刻升级为重量所,那么轻量所和重量所是可以跟我们MA2的那些含有。哈code的那些对象头的那些标志位是可以共存的,所以说这个时候,那么请大家就要明白,最终我们所升级过程当中,它这些东东去哪了?OK,好,切记,假设本来是偏向锁,只要有哈code的无法再保持,或者是进入偏向锁状态,OK,那么他们两个很难共存,所以说这个就给大家解决这个疑问,所升级以后哈希code去哪了?
我来说两句