车驰夜幕|面试官:java8中parallelStream提升数倍查询效率是怎样实现的( 二 )
4、Predicate : 断言型接口 boolean test(T t);
这四大核心函数式接口其下还有很多子接口 , 基本上能满足日常项目所用 , 这里扯远了 。。直接上代码 。
这里我们需要使用的是Runable接口 , 是无参无返回值的一个接口 。 在实际场景中 , 可能有时间范围之类的查询参数的 , 则可以根据不同业务使用不同的接口 。 这种方式也可以用Future接口去实现 , 有兴趣的可以试一试 , 这里就不多做叙述了 。
@org.junit.Testpublic void collect() {System.out.println("数据汇总开始");long startTime = System.currentTimeMillis();Result result = new Result();List
执行结果,由于四个子任务都是并行的 , 效率直接提升了三倍 , 如果子任务越多的话提升效果越明显 。
数据汇总开始查询在线人数 耗时2秒查询注册人数 耗时2秒查询订单总额 耗时3秒查询支出总额 耗时3秒获取汇总数据结束 , result = Test.Result(onlineUser=10, registered=10086, orderAmount=2000, outlayAmount=1000)总耗时 = 3079毫秒
总结1.parallelStream是异步编程的好帮手 , 在使用过程中一定要注意线程安全的问题 。
2.以上这种方式只能用在没有事务的业务中 , 因为在多线程中 , 事务是不共享的 。
- 公司|面试官:你有三杯茶,来了十个老板咋办?求职者高情商回答被录取
- 「面试」产品经理面试:如何让富婆爱上你
- 不懂性能测试,被面试官挂了...
- 车驰夜幕|自学python编程有哪些教程和书籍?python之父:这些资源你必须有
- 无缘清北文科第一名申请香港大学|无缘清北文科第一名申请香港大学 白湘菱入学面试全英文
- 绿色青浦|抢课要秒杀?面试难通过?记者带你去“中福会小伙伴学校”一探究竟!
- 乐动生活体育|伊能静:当你开始一个小组时,你会在面试时翻身,有时
- |报考单位我笔试第一,最后我被刷下来,连面试都没上我去
- 佛晓迎晨曦 职场女性在面试时要克服4个负面心理!,做个职场女强人
- 车驰夜幕|Google预告将于8月3日推出Pixel 4A经济型智能手机