00:00
各位同学大家好,接下来为大家介绍第14章内容,可重入锁可重入的读写锁和STEM洛票据所,又叫邮戳锁或者版本锁。OK,好,那么在开始这章之前,先要对它的前后知识啊做个简单的背景介绍和回顾,那么首先啊,嗯,对于可重入所和可重入的读写所,我们在guc的基础篇是详细给大家进行过介绍和讲解,那么有兴趣的同学可以去哔哩哔哩网站上面去翻查,那么对于我们到高级片而言,真真正正的新知识啊是有一个,那么也就是我们的sta lock,俗称邮戳所或者票据所,邮戳大家都知道对吧?假设你去邮政寄一个明信片,寄个信段,盖个章,这样的一个邮戳,类似于一个票据,类似一个版本,哈,OK,那么好,那么接下来结合我们的大厂面试题和对这个知识的要求,将给大家呢做一下它底层原理的说明和相关的介绍,那么来复习一下。
01:05
第四章的时候,我们是不是强调过说说家务的琐事,当时的时候呢,有很多锁,我跟大家说过。后面再慢慢给大家进行讲解,那么大家请看对于无偏轻重说过了吧,那么现在还剩最后一个无所独占所、读写所和邮戳所,那么这个是怎么来的?OK,那么到第14章给大家做一下说明和了断,走起来吧。兄弟们,这章的主要内容主要就是说。从没有锁到加我们的独占锁,Re lock,再从独占锁再干上我们的lock read write lock读写锁,再到我们的邮戳所。票据所怎么来的?为什么这么层层递推?那么主要是后面这两个。好,我们先来看一下关于锁的大场面试题。来,你知道Java里面有哪些锁,那这个不用多说,从第四章到现在第14章,我们全部详细介绍过接近十种了,你说你用过读写锁,那么也就是我们所说的rein read write lock,这个所饥饿问题是什么?
02:12
有没有比读写锁更快的锁?想都不用想,答案都知道是他好。那么如果你知道这个邮戳所也是我们的STEM。谈谈,我们再来。这个问题是现在考的最频繁最多的,那么就是可重入的读写所,它有所降级的机制,你知道吗?注意不要搞混了。这个synchize的是所升级,而到我们的读写所,这它有所降级机制,所以呢,同学们,这一章也是需要同学们认真对待啊,虽然说我们的课程逐渐接近尾声,还是请大家加油坚持好。那么关于这个的一个背景就给大家说到这儿,那么接下来请你简单的聊聊这个读写所是怎么回事,那么大家都清楚啊,这种题目啊,字少事大,来吧,那么首先它是什么?
03:08
那么读写组的说明啊,那么同学们,我们先来说一下源码。首先这个叫lock接口,凡接口必然有实现类,我们这个lock接口最经典的是我们的re enter lock可重入锁,那么大家都清楚它呢是实现了lock接口底层分公平和非公平,实质而言,那么它呢,也就是我们的think考这么一个类,然后这个C口这个类我们都清楚它怎么来的,是不是继承并。实线于我们的AQS啊,还有印象吧,没问题,这个呢,前面详细的说过了。那么同理啊,搁到这儿,我们会发现,我们的读写所呢,它也是一个什么结口。那么读写锁这个洛克呢,和这个洛克是两个不同的接口,所以说呢,它们两个里面的方法也不尽相同,但是读写锁的这个接口里面有读和写。
04:09
两个落两个方法,它的主要实现类就是今天我们的主角,也就是我们这儿啊,这个太多了。Re read right lock可重入读写锁,请大家看它是实现了读写锁这个接口,凡接口必然有实现内,那么和之前一样,我们会发现这哥们可冲入的读写所和我们的锥的lock一样,也是什么由AQA4来搞定。所以说如果说从源码的分析,大家都应该是很轻松,为什么?我们之前是不是花了很大的代价给大家说过aqa啊,哎,那么所以说呢,这两个我们呢。做一个简单的回顾,那么底仓都是as说过了,但是为什么已经有洛克了?还要弄出来一个read write lock读写所,而且还混在一块。
05:03
对吧?那么这个是为什么呢?那么同学们,我们来看看读写所的说明,走起。来。这个可重入的。读写锁。定义一个资源能够被多个什么读线程访问。或者被一个一个写线程访问,但是不能同时存在读写线程,好,那么所以说这哥们混在一块儿,那么就是一锁多用,类似于我们生活的案例,大家在厨房里面都用过菜刀。刀刃切黄瓜,刀背拍大蒜。那么这个时候你从省事。给力,方便简洁的角度,你不会有两个工具,切,用刀,拍,用锤子,对吧?所以说你肯定是什么简单可依赖,简洁并高效,就像读写所一样。
06:01
请看。一把锁,同时支持读的功能,同时支持写的功能。一个菜刀厨具同时支持切的功能,同时支持拍的功能,所以一体两面,读写互斥,独独共享,那么读写互斥,简单切的时候不能拍,拍的时候不能切。那么独独共享一句话,结合上面的锁,自然而然就像卫生间的一个门栓,我自己进去方便的时候当然要排他了。但是有些时候,有些场景。是读多写少,你在写的时候。你排他,你读这only one只能有一个进去,正确,可是你在读的时候,我们当然是希望读读共享了,对吧?那么对比我们之前的可重入所re en look,那么它不管是写还是读,某一时间段只能有一个进去,比如说我们的更重的所synchized,所以说我们时候可以发现刀刃和刀背互斥,写的时候不可以读,读的时候不能写,但是读读你要给我共享了,所以这个就是我们什么可重入的读写所,它一体两面。
07:20
这个是最重要的,那么一个锁可以同时做两种事情,这个就是它产生和存在的意义其中之一。好,那么接下来我们就要详细的给大家说一下。无所。加索读写锁再到邮戳锁它们之间的演变,因为我们在学一个新技术的时候,一定要往前推推。老技术到底有什么问题才导致这个新技术出现?我们是不是讲过一个AB法则的学习法,Before after之前是什么呀?之后是什么呀?那么为什么?
08:00
由他诞生出他,再有他,好,那么对于读写组的简介,我们就先说到这儿,上面只说了它一个特点,那么接下来我们从演变开始,挨个挨个带着大家过一遍。
我来说两句