00:00
来,同学们,我们继续完成了上面这两个,下面呢,我们要会会我们look了。通过前面的铺垫,我相信对这个对这个都OK了吧,他们两个的两个小限制,那么洛斯port,我相信你现在也应该知道它为什么会出现了吧?好,那接下来同学们我们先来了解洛port当中的两个类park。等待,也就是阻塞。安park就是唤醒,Park就是停车的意思啊,就是让县城停下来啊字面。来翻译的话,那么下面我们先理论。后代码,最后给大家做一下总结,熟悉杨哥风格的都知道我的三板斧理论实操小总结,拿下洛克斯珀特,对比着来学习知识能够成一个碗状,好,同学们走起。首先是什么?我们看一下官网。通过帕和安帕方法来实现阻塞和唤醒线程的操作,那么打开我们的API,这有个帕,除非许可证可用诶。
01:08
许可证permit。否则禁用当前线程以进行线程调度。第二个。这有个重载的一个方法,Park加了个object block,除非那们解释不再重读一遍了。下面有个unpa,如果给定线程some不可用,则为其提供许可,一个叫park阻塞,一个叫UN park是吗?上不可用,就是如果你在状态,我可以用IPA给你解锁,通知你活过来,那么来。同学们。我们在这儿呢,前面也都读过了,回到我们的文档,这有个官网解释。那么同学们刚才呢,我是不是强调这个东西叫什么东东许可证啊,这个很重要,这个概念在洛克support里面,不要去只会做API调用工程师啊,帕安帕用一下就完了。
02:02
No,走起,我们在这儿可以看到啊。卢破用来创建的元许啊,它提供了呢,在这个相关的类呢,它呢,每个线程都可以被使用,提供了一种什么。Permit看到没有,叫许可证对这种概念来做到阻塞和唤醒的功能。每个线程都可以有一个明白。permit只有两个值,一和零,默认就是零。我们可以把许可看成是一种零一的信号量,类似于我们的SIM,但是注意不像我们的SIM。Permit许可证不允许do not accumulate,不允许累加,它最高是几?累加的上限是一,你不要管,现在先跟着杨哥囫囵吞枣,按照官网的理论,我们先来一遍,说过三板斧吗?你先整体听下来,理论实操小总结了以后咱们再说别的,待会你一读你就明白了。这儿你只需要明白,Look support它阻塞它是么?让每个线程都带着一个许可证,默认值是零,如果现在你没有许可证,不好意思啊,不允许放行,有许可证了我才允许你放行。那么谁来发放这个许可证?就是我们的安po这个方法。
03:16
好,安帕,这个方法好,同学们走起。那么下面API完了以后,我们来来看看,一个叫主色帕,一个叫。唤醒就是我们的泛型I帕。放你通过,放你行走,那么park park好,那么下面阻塞。和唤醒属于这么一个情况。Park。干嘛阻塞当前线程,或者是传入一个一个对象啊,它这是一个方法重载,那么这样呢,都很简单。它的底层呢,我们走走起一波,看一下实质是什么,按safe类,那么UN safe类我们在。大厂的GUUC那个里面呢,是详细讲解过OK吧,所以说你看表面上你API级别的用户。
04:01
它就是按帕调一下就知道,反正可以类似于wait把它线成阻塞,但是它底层调的是UN safe,那么这个。帕,我说过了,这个方法它底层就是一个什么permit,有个许可证,默认是零,没有许可证,所以说这个车开到这个闸机这儿就被拦下来了,开到这个关卡这儿就被拦下来,这个车就相当于是个县城就会被阻塞,直到别的县城,将当前的县城就是这个permit设置危机,有一个人安帕克给我发放了一个许可证,我可以通过了,那么。这个帕方法才会被唤醒,相当于说放行了,那么这个时候汽车放行了以后才能通过这个关卡,然后我们的permit米再次置为零并返回,OK,因为用掉一次这个证了,用过了以后就清空了。好,这是我们的什么帕克,那么安帕克。大家看一下点过去哈,待会儿我们看源码啊,你就记着。它的park和UN park方法就是什么底子啊,都是用Una,那么也就是我们的什么发放许可证的一个方法,好,那么同学们,我们走起。
05:04
下面呢,我们的代码说话,那么先看正常。那么。方便大家复习老规矩,把这个抽出去look。Wait和signal。OK吧?下面呢?
我来说两句