00:00
好,同学们,下面我们进行第三组。对计算结果进行什么消费?注意上面是进行什么处理,上面是用then apply,下面我们来看一下它们两者的区别。Apply是上一步处理的结果传给第二步,他们两个存在依赖关系,而这个呢,消费型的呢,是接受任务的处理结果,并消费处理,注意无返回结果,说穿了就是我们的consumer消费型函数式接口,好,那么同学们我们来看一下。那么这个呢,是我们的第三组API。我们连消带打,既复习以前的,也学习新的。那么来,各位亲都晓得啊,假设这是RETURN1,那么then。来这个时候是不是F,那么function随便你写什么都行啊,那么这个时候是不是我们的return。F加上。这波OK吧,还是加上二吧,好,那么和之前一样来then apply,那么这个时候加上三,这个时候就变成第一步。
01:04
有输入是一个一,第二步加了以后传下去,那么这个是我们之前讲过的then apply,那么现在then。Accept,注意,请看是个什么consumer,哎,而apply是个什么东东?同学们。Function它是不一样的,好的,那么在这了以后,相当于说我们这个时候。我们这个then accept,那么作为一个返回值啊,我有输入参数,好,那么我接下来干什么呢?就把我们这个R打印一下来进行消费来模拟,来同学们请看then accept。什么东consumer消费型函数式接口得到了什么?有一个输入参数,但怎么着没有返回值啊,所以说我们在这儿不需要return OK,那么我们在这直接给他打印出我们最终的结果和效果是什么样的,得到这个六,哎,就是你前三步计算以后最终结论是什么?我来消费一下就得到我们的计算结果,一加二加三等于六,好,这是一种。
02:07
那么接下来你甚至可以直接像这么写,用这种呃方法引用,我相信同学们也应该见过,对吧?大家请看,那么两种语法呢,都带着答案进行一下介绍和复习,OK都可以好,那么这个then accept就是什么?消费处理无返回结果,那么下面呢,我们要把它们呢做一下对比,补充的对比和补充说一下code的任务之间的顺序执行问题。首先。来,各位亲,常见的有这三个,Then run then accept then apply,这两个我们刚刚演示过,那么这个是什么呢?来吧。打开API绝对一目了然,这个Z呢就是。Reable,那么既没有输入参数啊,也没有返回值啊,相当来说它跟上一步啊啊没有太大的关系,上一步任为A执行完了,执行任务B,并且B不需要A的结果,我A完了以后,我只是继续往下走,这个B可以把它当做新起的一个线程,Reable,所以说我没有输入参数,也没有返回值。
03:09
这个then accept呢,接受的是什么?刚刚讲过的consumer认为执行完成以后,执行BB怎么着,需要A的结果,但是任务B5返回它这个B要去消费A的结果。这个是apply,是function,任为A执行完了以后,执行B必须要A的结果,同时任务B怎么着有返回值啊,那么B需要去获得上一步传递给我的处理方案和结果。好,那么同学们,我们做一个最经典和最简单的案例。我们呢,给这三个给大家做一下这个比较最简单的啊。来吧,那么现在呢,假设这是起了一个异步线程,它呢,就返回一个。A。然后呢,Then?大家请看then run,我们这儿要传一个runable,所以说在这一个拉的表达式相当于说它就掀起一个线程,第二,Join OK。
04:07
那这个什么意思呢?这个是你起了一个异步任务的线程,有返回值,返回result。A,然后任run,不好意思啊,我呢,跟你没有太大关系,你忙完以后,我既不依赖你,我不需要你给我续传,我自己去干我自己的事儿,当然只不过我这儿没有写任何东西啊,完了以后我们来看看这个旧瘾可以获得什么,那么大家看一下。什么东东?是不是正常结果应该是个难啊,哎,所以说认为A执行完了,执行BB不需要A的任何反馈和结果,我们两个几乎就是你,你忙完了以后,留到我这一步,我们两个可以是各自独立的,各忙各的,没有什么太多的交集。好,这是我们的第一组,第二组和刚才一样,那么现在then,我们来accept。注意是个啥消费型函数型接口,那么消费型的话呢,我们说过了,再次来看看源码,Consumer有一个输入,但是没有返回void,所以说呢,在这儿我们可以看到它的输入。
05:12
就是我们上一步的结果集这个。而result,那么现在你要干嘛呢?我就直接打印出我们的result a打印出我们的结果集,相当于说except是消费嘛,那么我跟你有关系的,完了以后传给你,你来进行消费,那么所以说accept任务A执行完,执行BB需要A的结果,但是任务B没有返回好,这个时候没有返回,我们就应会得到什么呢?来,同学们,我们跑一下。请看。第一个那是我们上面这个then run这个动作,第二个打印出来。OK,所以说这有个result a,但是由于它是个消费型函数接口,这个就也没有任何东西好,那么下面我们来看一下我们的第三组,这个呢是result a,然后完了以后就是then,那么apply。
06:06
这个时候呢,上一步这个结果值R就给你了,那么这个给你以后,你是需要有返回值的,你们两个有配合,上一步完成了续传给下一步,那么R加上假设我们这叫。Result b,那么在这的就那么来看看它们能构成什么样不一样的。结果来,各位同学。也很简单,第一个这个难就是他。第二个。是result a是它打印出来的,然后这个时候就由于没有返值得到是个nu,前两个都没有返回值,几乎所以说都是nu,但是我们这个apply它是上一步的A会作为R传给下一步,你下一步干嘛呀?我们是个function函数型接口,两个合并,那么这个时候就应它是有反回值的A和B字符串拼接,所以说这个东东认为A执行完任务,BB需要A的结果,同时任务B什么有返回值,有返回值就应或者get才能有返回值的获得,好那么这个就是他们任务之间的顺序执行关。
我来说两句