为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第14天+并发编程-流计算

标签:
Java

课程名称:笑傲Java面试 剖析大厂高频面试真题 秒变offer收割机

课程章节:第4章 并发基础篇

主讲老师:求老仙

课程内容:

第4章 并发基础篇

课程收获:

随着时间产生的数据序列

为什么要用lambda表达式,在写业务的时候,会附带数据和数据类型,为了让业务看起来更流畅,不用判断数据类型。

问题1)什么是Linux中的管道?和Java流中的管道?

在Linux中,使用竖线| 表示管道。

Linux管道的作用就是,一个进程输出数据,作为另外一个进程的输入。

Java流管道,说的是一个计算过程的输出,作为另外一个过程的输入。

  1. 函数式接口,就是实现匿名函数

  2. 函数式编程,就是管道编程。

  3. 接口中可以定义方法,动态的方法是defalut,也可以定义静态方法。

  4. Lambda表达式会消耗一些性能,但是换来的是业务的可读性,所以在底层的算法当中,不适用lambda表达式。(lambda)

问题2)什么是纯函数和非纯函数?以及他的副作用?

纯函数:函数内部的操作,都是对输入的参数操作,不对其他参数操作。

非纯函数:在函数内容不做了其他操作

纯函数的作用:防止程序报错找不到原因

进程的输入流和输出流都是文件的,如果标准输出流发生了问题,那么System.out.println就会报错。

问题3)并行处理?

并行计算分为3个步骤:

  1. 使用spliter进行分割数据源,开启cpu核数 - 1 个线程

  2. 分割的等分,每份都互相独立,分割的大小是1024,(拆分的方法是spliter的类,实现是在集合当中)

  3. 合并计算的结果

/ 拆多少份,创建多少个线程**

  • 1, 拆分是通过spliter,每份的大小,默认每份1024,如果拆了100份,线程池是5个线程,轮流去执行每份数据,最后做合并结果

  • 2, 启动的线程池的大小是通过,forkJoinPool设置的,默认是cpu核心数-1个线程。

*/

问题4)为什么使用函数式编程,使用纯函数?

纯函数:函数内部处理的数据,都是通过函数的参数传入的。

所以在lambda表达式中,如果是非传入的数据,就需要转换成immutable,有利于并发

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消