00:00
各位同学大家好,接下为大家介绍罗support好,那么又听到了一个新的技术名词,那对于一个新技术,那么各位同学,你应该带着一种什么样的学习套路、方法和思考的维度进入深层次、更高层次的技术学习和提升呢?那么首先。它是什么?Lock锁、support支持支撑,那么摆明着是不是一定是对原有功能的一种改进,加强支撑型的扩张啊,有点类似于我们以前讲过的。Future到卡太多future,那么自然而然,这个从直面意思直移啊,直移过来并不精准啊,所的支撑类,那么一定是一个改进类,那么接下来我们就要了解一下它是什么,它为什么会出现这个新技术一定解决了我们老技术某些不方便不灵活的地方,好所以说我们带着这样的一些思考,我们呢,一起来进入深一步的学习,那么大家请看。所谓罗斯port,它呢,是在Java u conent并发包洛子包下面的一个什么类,好,那么这个类,这个洛色put它到底是什么呢?不凡打开我们的中文API这个包下面找到我们的。
01:15
类这是不是有个lock port,点开可以看得出它这有个描述,用于创建什么锁lock嘛,和其他同步类的,注意同步类啊的基本线程阻塞原语啊,我相信一读到这儿你肯定是懵逼的,还是原来那种感觉,每个中国字啊你都知道,一拼起来一读又懵逼了。那么在这儿我们来不妨来看看点一下有没有呀,原来这个类根本就没有构造方法说明什么不可以逆第二个来看一下它的方法。有多少个也不多,12345678。八个方法在眼前,而且大部分都是叫什么park。诶,这只有一个叫UN帕克,那么这提前句透重要的就是这两个,所以说我们这儿可以看得出它呢,把这段话和刚才我们看到的是一样的,用来创建所和其他同类的基本线程的阻塞圆选来。
02:12
后面我们会详细说下面这两句话,但是请大家注意,根据刚才我们看到的文档来,所谓的park,除非什么许可证可用,诶,这有个东西叫许可证permit,否则禁用当前线程已进行线程调度好,也就是说没有许可证这个帕方法。干嘛禁用当前线程,那么是不是会让当前线程阻塞?给我停下来一句话,没有正就不让你通过好,那么接下来这个帕明白了,其他的都是一些什么方法的重载好。IPA传了一个线程进去,这个是代餐的,这个是不带餐的。两个方法对输入参数的要求不一样,如果给定线程上不可用,则为其提供许可。诶,有没有发现这两个方法有点是一套兄弟?
03:00
它上面是什么,没有站就给我。禁用,下面是如果给定的线程尚不可用,也就是说假设哥们儿你在这儿卡住了,有一个路障,那么这个时候我就给你提供一个许可证,哎,就算是一道核酸证明一样,证明你OK的,你就可以通过。好,那么至少我们在这儿就会明白帕和UN帕克的作用分别是阻塞线程和什么解除被阻塞的线程,那么它们两个我们先混个眼熟,然后待会儿我们再来说。这个洛克斯珀特,他到底干了些什么事?来,接下来。线程等待唤醒机制啊,那一说这个线程等待和唤醒机制啊,我相信稍微有点基础的同学一定会想到Java多线程基础片这一章里面是不是说过一个东西叫生产者消费者模式啊,生产一个消费一个,生产一个消费一个,那么这个时候同学们一定会知道等待是wait,唤醒是notify,那么。
04:00
实不相瞒,Support就是对线程等待唤醒机制另外一种优化和提升。来,我们接着来看。一般我们有三种让线程等待和唤醒的方法,来吧,前两个是我们之前学习了解过的东东。第一个。Object类当中的方法线程等。object类当中的notify方法线程被通知唤醒。第二个使用guc包当中的接口里面的wa方法和sign方法来唤醒。第三种就是我们马上要讲的罗斯port类,可以阻塞当前线程以及唤醒指定被阻塞的线程。那么稍微有点灵气的同学一定会明白啊帕。怎么着,除非有许可证,否则禁用,当前线程已进行线程调度,那么把这句话翻译过来,就说如果我没有许可证,那么当前线程一定就会被阻塞,OK,所以说这个帕是这个意思,然后呢,安帕,那么自然而然对应,是不是有点类似于我们的lock,按LOCK1正一负,一加一减,那么现在我们就来看看。
05:09
这有几种,有三种,那么这个时候我们同学们,我们大家呢,不妨来回顾一下我们之前学习过的知识和讲解过的内容来。首先。大家都清楚新技术为什么会出现啊,不是说现在带着大家呢,噼里啪啦敲一顿API,然后呢说啊同学们案例跑通了,重要的是底层的原理和设计思想,那么技术的发展,请问为什么从一到二再到三,OK这条线。原作者,他是如何设计和考虑我们的技术发展到哪一步会有这些内容?小的啊,在这儿有个三角形吧,我这儿故意画的啊,SNCH。OK,这个时候同学们都清楚啊,这个是我们的什么,第一个商讨。那么如果说要生产者消费者,那么这个时候按照我们刚才所说的synchize这个下面是不是有我们的两个经典的类,呃,两个经典的方法,一个叫,一个叫。
06:11
Notify,当然我就不写那个notify了,这是第一组,好,有这组了,以后假设啊,我们这个呢,把它叫做DE1。那么第二个跟其类似啊,我们这儿是不是产生了我们的lock接口,最经典的我们是不是用lock,那么结合我们的lock接口以后,我们这儿是不是还可以得到一个condition。OK can接口。我相信大家。都清楚吧,Lock点6CONDITION,那么结合这两个对标SYNCH,然后它底层也有第二组,是不是叫A。和我们的signal。同学们,没问题吧,那相当于说就是我们这的wait notify wait和signal,那么来吧。我们现在这个呢,就把它称为第二种,那么现在我们来了第三种,那么。
07:04
对标的。就是我们的洛克。Support,那接下来我们就要给大家介绍为什么同一到二再到三,为什么现在洛support会被提出来重度使用,很多源码分析都依靠它,那么一定它会有一些新特征。那么来同学们它。新特性牛在什么地方呢?我们走起。那么接下来。
我来说两句