00:00
我们六出来,Fixed th pool,假设三个啊,有固定线程数的一个线程池,那么对于我们的池子。我们基本上try catch finally,那么尽量先保证资源申请类的使用完了记得关闭,那么接下来呢,就把我们的主业逻辑。这段代码拷进我们串代码块里面,那么就可以通过使用自定义线程池的手段来规避刚才这个主线程立刻结束。导致这个。守护县城复合效应啊。迅速的结束,收不到我们的结果,这样的一个不完美的地方,我们做一下小小的改进,好,那么接下来呢,我们都晓得对于supply这样的异步方法有返回值的,那么对于这样的这些静态方法,这个呢是只传一个supply接口,而这个是可以传一个线程池的,那么现在呢,我们呢,把我们的线程池。好,丢进来输入法的问题,好,那么大家请看,相当于我这个异步任务花一秒钟可以获得一个随机数的异步任务,走进我们的线程池里面去处理,当他完成了以后,直接可以打印我们的结果,假设没有异常的前提下,好,那么同学们,我们来试一下。
01:11
此时应该效果和刚才一样,大家请看线程池是不是换成我们自定义的线程池了,卡走进来,Main线程先去完其他的了。那么。我们一秒钟以后随机出四这个结果,得到我们的效果,那么when complete直接可以获得我们对应的输出结果,OK,好,这个呢,就是我们用线程池来搞定,那么接下来可能同学们会说,那这一段你倒是进来了,那么异常。我还没有看到啊,好,那么同学们,我们不妨这样啊。如果。我们的结果随机数大于五的话,那么我特I等于十除以零,相当于说零到九嘛,有一半的可能性,如果高于五。我们就报一个异常。相当于如果现在这个程序是正常的我们就走这个分支,异常的我们就走这个分支,那么这样的话,是不是看到它的future,我们大家可以肉眼可见要比future强大很多呀。
02:08
来,同学们,我们跑一下,此时按照我们的随机数,我们可以看得出,那么现在我随的是几?随的是三,三大于五吗?没有,所以说是负不进来,我们可以验证走到了我们的正常流程,那么我们再随机色。好同学们,哎呀是一,那么现在呢,干脆我把这个值改小一点啊,那么这样的话呢,主要是先让大家呢,看到我们的什么异常分支啊啊来正常还是异常来,大家请看现在呢,一秒钟以后出结果多少了,是不是四啊四的话大于二进来直接报一个初速为零,那么所以说我们就不再走one complete。这个分值啊,直接走到了exception里,OK,好,那么在这我们呢,就给大家呢,演示了我们的computer,它日常通用的使用方法怎么样,现在大家应该。体会到了它相关的功能和强大之处了吧,那么再来体会一下。我们在这儿。
03:04
我们说过他是不是多了一个completion stage完成步骤,那么所以说结合到这儿我们来看看。它呢代表异步计算过程当中的某一个阶段,一个阶段完成以后,可能会触发另外一个阶段,所以说我们在这儿就给大家呢清晰的演示了第一步这个阶段出了一个随机素,完成以后,他呢只要一完成when complete马上就可以通知你,不用你来轮询来获取,如果有异常情况了,也可以给你反映,那么这样我们的功能是不是会大大加强啊?好,那么搁到这儿了以后,那么同学们,我们相信大家呢,应该理解了为什么卡future要比future强大,如何减少阻塞和轮巡,那么最终我们来看看它的优点来。异步任务结束之后,会自动回调某个对象的方法,第一步随机数出来以后,只要你正常情况没有异常,可以自动调用第二步when complete,那么这样就可以直接获得我们的结果集。主线程设置好回调以后,我不太关心异步任务的执行,异步任务之间也是可以顺序执行的,那么来同学们。
04:09
我们可以看得出我们这个没方法是不是先去忙其他的任务了,那么接下来的一些事情就是你线程池和这个异步任务之间的配合来。异步任务有异常出错的时候,也会自动回调某个对象的方法,那么同学们我们这也就演示了,哎,所以说在这儿可以初步看到了complete future它相关强大的功能,当然它后续还有多么的厉害,我们再给大家进入更深度的演示,好,那么这一讲就给大家先介绍到这儿。
我来说两句