【Java并发·05】CompletableFuture扩展

作者: 灰_灰分类: 计算机技术 发布时间: 2021-03-24 22:06:18 浏览:21772 次

【Java并发·05】CompletableFuture扩展

洋仔唔:
是B站上最有质量的并发的视频了,和外面看的学习思路是不一样的,一看就是精心设计过的风格。播放次数少感觉是因为视频标题覆盖的关键词比较少,我自己就是搜CompletableFuture这个关键词才找到这个系列的,感觉可以覆盖更多的关键词,让更多想学多线程的小伙伴可以搜到这个视频~

白发清纯小萝莉:
UP主,讲的非常好,其实这种高质量的视频是很难做出来的,我之前也有涉及过,应为过度效果,视频连贯性,语速,坡起,和语言流畅,以及知识的融汇,还需要用最简单的案例来描绘比较难以理解的技术和知识点,真的很花时间, 如果是单纯的录屏的话, 就非常简单,但是内容不精,质量不高,很容易浪费时间,听一些无用的东西, 有的UP主可能自己懂, 或者半懂,却不能将懂,所以反复强调,或者一笔带过, 真的,这个视频是我看到的最有创意的视频,质量真的很高, 内容知识也很新, 很好, 很有趣,大佬可以在发布的时候,多涵盖一些词汇, 不然除了直接搜索这个词之外,别的词汇搜索不到,当然只是我的一个建议,毕竟这么好的视频,我也很希望其他喜欢学习的小伙伴门可以看到

【回复】看到你这么用心的评论,我有点意外,也有点开心 做动画跟录屏相比,无论是难度还是耗时,都大了几十倍 我希望内容上,每一个字都是有意义的 一方面是想节约你们的时间 另一方面也是想节约我自己的时间 (文案写起来简单,做动画太耗时了) 希望学习的难度,是平滑上升的 不希望突然卡在某个点上 所以我写完文案之后,都会反复去思考 观众在看到这句话的时候,会不会有什么疑惑 如果有,我能不能从另一个没有歧义的角度去阐述 再就是每节课的例子…… 这是我花时间比较多的地方 因为要讲的东西属于高纬度,而观众在理解之前 并没有高纬度的思维模型 和 思维方式 所以找一个好的例子就很重要 它能让观众在较低的维度去理解高纬度的内容 有些时候我能从生活中找到一些简单、通俗的场景去匹配 但是一些复杂的模型在生活中我确实找不到 这部分内容我就还没开始讲。这也是影响我创作的一方面 当然目前最大的问题是时间 我自己的时间挺少的 我更希望,自己的作品是有趣的 学习要耐得住寂寞,这句话应该很多人都认可吧 可是我发现,精心设计过的内容 是可以让学习变得有趣的 即使是原本没有想学的人,在看过之后,也会产生想学的兴趣 这是我重点关注的地方 这应该也是我的作品跟其他教学作品的最大不同之处 文案在定稿之后,后面基本就是体力劳动了 录制声音、准备素材、制作动画 我还有许多想做的东西,因为时间和效率的考量,没有做进去 创作这块我还在探索,各方面都有在思考 以后的作品肯定会 越来越好看,越来越好玩,越来越丰富 关于关键词,一个作品好像可以设置10个吧 在视屏下方就可以看到 我设置的关键词 这块我有考虑过,每次也在改进 你看有什么好的关键词? 可以推荐一下,我可以加上去 对了,没什么意外的话,这两天会发布下一个作品
【回复】回复 @灰_灰 :Up加油 我觉得在时长较短的视频里面 质量是很高的
【回复】回复 @灰_灰 :我也觉得是这样,其它的我都收藏了不想看,这个竟然看了好多集,说明思路清晰连贯,设计的很巧妙,加油!
MixxCG:
都快4月中旬了 生产队的驴都不敢这么休息

【回复】我可不是生产队[喜极而泣]是梦之队[tv_调皮]。想尝试新风格呢,工作之余的时间不多,边学习边做。想从pr转到ae,做更炫酷的作品,下一集是个转折点
正大白势力:
up讲的很好呢十分感谢。我想问下一个场景嗷,一个任务要去请求一个接口,每个任务都是独立的没有关系,这个任务之前是用future做的,我想改成completablefuture版本的以减缓future get时的阻塞,但是也不知道是我理解不对还是怎样,cf好像更多强调异步不强调并发吧。 希望大佬帮忙指路啊,如果cf能解决的话能告诉我看哪些方法吗? 尝试过allof但是返回值结束不到……

【回复】最后一句是接受不到不是结束不到[笑哭]
【回复】cf当然可以解决啦。allof用完以后,再分别调用cf的join方法就好啦
【回复】回复 @灰_灰 :问题解决,感谢UP,全套视频三连了,希望多多出视频[给心心]
红色的小犀牛:
up能不能讲讲java语言 中的 这几个关键字:synchronized,volatile, 看起来是简单两个关键字,但是解决了JAVA语言涉及到的 原子性,可见性,顺序性 三大问题,希望up能讲讲,这两个关键字有点深度的。也私信给你了。

【回复】这个我还不确定要不要讲。因为这块牵扯到的东西不只是多,而且复杂。最开始考虑做并发这门课的时候有想过这块内容。我的初衷还是希望大家把jdk的作者们提供的好东西用起来,而不是还没开始就被一些难懂的门槛劝退了,所以内容编排上把简单和实用放在了首位。不像其他并发课程,一上来就开始讲锁相关的东西,有些讲师自己就是一知半解的。这就导致听的人云里雾里,然后觉得多线程是个很难,容易出问题的东西,内心就比较排斥 当然啦,并不是说锁相关的东西不重要。而是,现实中,绝大多数时候我们没有必要直接面对这些,因为上层的api基本够用了。除非是需求或者业务比较特殊,需要从底层开始自研、构建 目前需要用到底层的最大场景就是面试了,这块我不想多说 底层的东西会涉及到一些,但是深度我目前还没想好,不是技术问题,是表达和传达的问题。如果只是自己想学明白,自己认真钻研一下能明白,但是把这么庞大、复杂和抽象的东西 以直观易懂的方式讲出来,还是挺难的。走一步看一步吧,我会尽力去构思,去编排的。还有,这块肯定会放在结尾处讲,所以短期内不会涉及到底层
【回复】回复 @bili_87387531283 :以后心情好的话做做看[OK]
【回复】回复 @灰_灰 :synchronized,volatile的视频大把的,up还是另辟蹊径讲点别人讲的少的吧[妙啊]
小泽码一郎:
up主讲的 太棒了,已收藏投币!加油,期待推出更多相关内容![doge][呲牙]

Hesse_1877:
其实,我之前看国外的视频的时候,比如mosh,做的非常精美。但是国内培训班都是一股大碴子味儿。up做的可以堪比mosh了。

半夜又失眠:
大佬讲的非常好,催更[星星眼][星星眼][星星眼]

sarollight:
up主超棒啊!我有个问题想请教,假如我有一堆业务非常多,而java中没有支持协程,也就没法让一个业务对应一个协程来工作。但如果使用线程池来应对这些业务的话,如何最小化线程间调度的开销,达到最大化性能呢?

【回复】回复 @sarollight :点赞关注不迷路
【回复】看具体情况吧。线程池本就是用来处理大量任务的一个方案。当你的任务是CPU密集型的,那线程数跟CPU的核数差不多的情况下,效率是最高的,因为线程数跟CPU核心数差不多,所以也不会有太多线程的上下文切换。 当你的任务是IO密集型的,那线程数可以设置多些。哪个线程可以读或者写了,再由CPU去处理,这样的话CPU就不会等IO,虽然上下文切换会多一点,但IO效率高。 另外,当你但任务是那种不定期执行的,也就是定时任务,JDK里有一个ScheduledThreadPoolExecutor 可以调度任务,在任务不需要执行的时候,是不怎么消耗CPU资源的。当然啦,定时任务的话,Java生态里有一个比较优秀的框架Quartz,你可以去了解一下
【回复】居然回了我这么多,受益匪浅,感谢&感动🙏
r1-12king:
讲的真的很好。我一个只想混个眼熟的都看完了,支持

知识分享官 视频教程 CompletableFuture 多线程 并发 Java 异步 Java8

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!