00:00
好,那么来,同学们再看看可重入锁和递归所。重入有没有,我们有没有讲过可重入锁。不废话。RA。En lock那字面意算是不是叫可重入锁?我说过了,什么叫可重入锁?我们学校卫生间那个门栓,你用的时候插上门栓叫洛克,你在里面进去关上门,释放内存出来了,拉开门栓,你出来拉出拉开门栓是不是叫按落克?那么同学们回答我一个问题。张三用完了,李四能不能再进同样这个坑,同样这个门,用同样这把能刷?好。首先从生活的case我们先解决干嘛?这个门刷是不是可以可重入的。那么来听好。什么叫递归索呢?听着。
01:02
可重入锁就是递归锁。就好比干嘛。京津冀河北是不是称为冀?天津是不是称为京?北京是不是称为京?没问题吧,那么好,贵州称为什么?钱那么呢?辽宁简称辽以回事,云南简称滇,他们两个是两块牌子的同一个意思,可重入所又名递归所,递归所就是可重入所能跟上。接下来。这两货是个什么鬼?来。可重入锁,也就是递归锁。注意,这有点啰嗦啊,锁加锁。指的是同一线程外层函数和得所值号。内存递归函数仍然能获取该锁的代码。只在同一个线程在外层访问获取锁的时候,在进入内存方法会自动获取锁。
02:04
也就是说,线程可以进入任何一个它已经拥有所的所同步着的代码块。海涛。跟我讲,你有没有一种感觉,那么所有中文都知道,妈读了以后还是一脸懵逼,不知道啊。不好意思,咱们官网上就这么写的。那你说杨哥,你讲人话我读懂,你看这就是为什么你去自学,你觉得你想自学,我现在也在自学啊,我已经把官网上翻译成中文给你了,不是我翻译的不好哈,他翻译出来中文就这么回事,什么叫可重入所,就这个意思啊。但是你说老师我不懂。这就是为什么要跟杨哥学,因为我能给你讲懂,你不要以为你这边自己去看书自学,别浪费时间了。过来,我们两步拍它。我们讲过跟杨哥学技术干嘛?三板斧第一个。先理论。那现在是不是读了理论了,跟我讲他妈全是中文,都每个字中文字都知道,但是你他妈读不懂。
03:00
要把斧干嘛?是不是?敲代码要拿代码来说话,这一步东西干嘛?我要拿代码跟你讲,你才能明白第三步我们要干什么。小总结,好,那么现在我们进入第二步。理论是不是就这些?但是读完以后,你读不懂,没办法给你书,你也学不会,你根本没办法解决什么叫可重复,所以你整不明白什么叫递归速。但是杨哥能给你讲明白。海涛。我们组分两步讲,上半场我先用生活的case给你讲明白,下半场咱们代码说话,最后三班斧理论代码小总结好,那么这个时候呢,开工。接下来我们先说生活重要是什么?线程可以进入任何一个它已经拥有所的所同步着的代码块。简单一句话就说,假设我反问了一个同步方法。那么干嘛呢?
04:00
现在假设public method。林夕。这一步,同学们听不听得到?那假设不好意思啊。现在这个是个同步方法,我进不进来,进来了对不对,然后我进来以后。METHOD02。不好意思啊。你能不能理解我意思就是MA02,它刚好也是一个同步方法,这么说听不听得懂?也就是说同步方法里面再去访问下一个同步方法。听不听得到。这就叫可重弱。但是,他们却持有的是同一把锁。好,抬头有点类似于这样啊,同学们,你们现在在租住在上硅谷校区附近租房,你们租的的话呢,可能最外面是不是有一道防盗门,那把锁就是你家门要少。你进去以后,你有一个独立卫生间,你有一个厨房,有一个卧室。
05:03
没问题吧,有哪个同学现在你租房子进去以后,在你卫生间上一把锁,在你厨房再上一把锁,在你的卧室再上一把锁,最终你们家门外面用一把大锁。谈判权。正常情况下。你们现在租住的屋子里面那厕所,恐怕家里面的那个卫生间,厕所里面恐怕不会上锁吧,厨房不会上锁吧,我是不是一进大门开了以后,相当于就算你卫生间有门,但是一般你不会上锁,听懂了吗?我只要突破拿到了第一把锁,门外的这把大锁,进去以后就是一马平川,如履平地,明白说白了就是什么。买锁机,就是我们家的大门,我们家那个大门进来了,你主人回家,我现在上厕所,你们家独立卫生间那个厕所也有一把锁,但是一般那个锁是不上的,听懂了吧,相当于说就算上了锁,对我而言是不是属于可信任任货,我可以直接获得明白。
06:01
好,那么这个就是我们什么可重入锁,你看也叫什么锁呀。什么叫地块?递推回归,我要一就要找二二,完了是不是才能反馈给二二,再反馈给一,听懂这意思了吧,好。那么接下来。这两个。什么鬼?可重入锁,那么言下之意嘛,这两货就是什么意思啊?非默认是非公平的,可重入锁。听懂。那么好,那杨哥可重入锁的最大作用是什么呀?避免死锁。也就是说,我。MA1自身就是同步,我这进来是拿把锁。MASTER2,同步方法里面再访问同步方法,这个时候请看我们的理论知识是什么概念。同一线程外层函数或者锁外层函数是不是我们家正门最外面的,最外面靠近楼梯走到的那个防盗锁对外的那把锁?
07:08
内层递归函数仍然能获取该锁的代码。那么言下之意,是不是他们两个这样反问,能够互通啊,听懂?过来看,同一个线程,在外层方法获取锁的时候,再进入内层方法会自动获取锁,我已经进我们家大门了,我去我们家厨房,不用再多此一举开锁,听懂了吗?好,那么这个时候理论知识就给大家介绍到这儿,那么这个时候听好可重入锁,就叫递归索作用。干嘛是防止死锁,也就说。这两个你可以把它当做理解为什么呀。同一把锁,为什么?线程可以进入任何一个,它已经拥有所的所同步的代码块。
08:01
虽然说你们家的防盗门外面是一把锁,你们家的卫生间里面又是另外一把锁,但只要你能够主人回家进了第一道门。就算那个卫生间里面还有一把锁,对你而言是不是也可以获得啊?好,那么这个理论知识就给大家说到这儿,第一板斧先说完,二话不说。兄弟们,咱们是不是要?代码说话呀,别着急,严格讲过,学习三遍理论代码小总结,学习三盘符,你一定要把你的知识用代码证明,否则我现在干巴巴的给你讲理论,哎呀,你要说杨哥没讲啊,周阳他讲了,你要说杨哥给我讲明白了吧,那我听的是云里雾里的,有点懵逼,那么这种情况下干嘛?你永远成不了高手。每一个知识点。你如果不能用代码证明,你绝对不可能成为什么真正真正的Java程序。好,那么接下来理论我们说到这儿,下一讲咱们直接录代码。
我来说两句