00:00
各位同学大家好,继续,那么下面我们简单的了解了一下,三是对读写所的一种优化,就是一句话,原来这个。读写索读没有完成的时候,写锁无法获得,那么现在邮出所塞洛可以保证你读没有完成的时候,写索也可以介入,就做这点优化,那么他为什么要这么干?那么它以一种什么样的模式呢?来吧,你可以把它理解为。三特洛克,就是原来的这个可充的读写锁,再加读锁启动的时候写索可介入这么一个特性,好,我们来看看。他获取锁的方法。每次啊,都要返回一个邮戳,你拿到一个锁。这笔单子啊,其它类似于产生一个订单流水号,那么如果为零表示获取失败,其余都表示成功啊,那么这些呢,都是我从API官方文档上摘出来的方现我们先过一遍,待会儿我们来说一看就懂了啊。
01:00
这是什么洛克?这是什么示范所安洛克也需要一个邮戳,那就像是一笔订单的流水,下单到最后中单,那么下单的时候流水号是001,终结这张单子的时候,流水号也要是001,这叫暂时相符。那么所以说这个step必须是和成功获取所时得到的这个step是一致的。一一配对。第三个特点,它是不可重复的,注意。人家叫re en是不叫可重入,但是这个是不可重入的危险,因为这个戳记。坦白讲,就跟每个人的身份证号一样,一个县城是不是就应该只拿一个OK,你要么作废,要么重新拿一张流水号,那么如果一个县城已经持有了这个写锁STEM洛版本的这个写锁的话,再去获取写锁的话,容易造成死锁,千万不要这么干。那么下面有三种访问模式,分别是。读。写乐观读听好,这两个读和写和我们前面这个读和写的功能是一样的,它就多了一个乐观所得模式,所以说是对传统的一种优化,可以这么讲,这两个不用讲,就是前面的是吗?读写所也就是前面我们这儿。
02:16
所说过的这个red red lock的是写锁还是读锁?因为新技术出现了以后,四一定会比第三个版本强,三个版本要比二这个版本强,就这个意思,OK,所以说这两个和我们以前的一样过。那么接下来就要说一下这个乐观读索模式,来吧,看看官方文档,3BLOCK首先基于功能的锁,具有三种控制读写版本的模式。OK,那么来写读,还有什么乐观读那么。写就是我们原来的洛克,读就是我们原来的安洛克,这些都好说,因为大家应该是很熟悉了,关键是乐观读啊,简单锁定未除于什么写入模式时,它用这么一个方法,Try optim,可read才返回非零的戳记听懂,那么这个呢,就是尝试,你看这个是不是叫。
03:10
Op瑞的乐观读,如果自获得给定标记以来未在写入模式下获得,那么这个方法就返回。返回什么错,一定要注意啊。也就是说自给进的标题栏没未在写入模式下或获得所就说没有人来打扰,那么这个方法验证就是返回什么处,这种模式可以被认为是读索的什么,注意极弱版本。开了个小小的缝。可以随时被。写的破坏。对短的指读代码段使用乐观模式通常可以减少征用并提高吞吐量,但是它的使用本质上是脆弱的。OK,好,那么所以说请看这段话,在乐观模式下,读取的字段可能非常不一致,也就是说,如果没有人改,那好说爽死了,保证了并发量。
04:03
如果有人改了呢?那对不起,我们需要去验证一下这个validate,那么可能需要再重复读一次,如果有人被改了,OK,好,那么这个时候。官网上的带大家过一遍,那么这些方法我们大家呢,也可以简单来,这个是不是叫读索,有没有点像我们刚才以前所写的读写lock接口。一体。分出来是写所还是读所,这是我们的读写所啊,这个跟这个差不多,大家请看写还是读来。再来看。Lock unlock,那么在这我们大家就可以发现写还是读,那么来这儿有个validation validate long型的,返回一个布尔值,就看有没有被改过,好,那么简单的API介绍我们这呢。就来看。结合前面所讲解的官方的这个乐观图,它是一种什么无所机制啊,类似于数据库中的乐观锁。
05:05
支持读写并发,注意读的过程当中允许写介入,很乐观的认为读取的时候没人改,那假设因为写的介入改了呢,那么。我再升级为悲观的这个模式啊,那么这个时候我再读一遍,有一个锁的转换和升级的过程,这个就是邮戳锁它相应的特点,那么一句话。读的过程中也允许获取写锁,介入就是这个功能。全部功能再加这个优化,优化就优化了红色这一句OK,它的特点就给大家介绍到这儿,下面老规矩,理论完成以后代码说话。
我来说两句