当前位置: 首页 > article >正文

《Java核心技术II》并行流

并行流

从集合中获取并行流:Stream paralleWords = words.parallelStream();

parallel方法将任意顺序流转换为并行流:Stream paralleWords = Stream.of(wordArray).parallel();

以下是不好的示范,假设对字符串的所有短单词计数:

package streams;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.List;

public class BadParalleWords {
    
    public static void main(String[] args) throws IOException {
        Path path = Path.of("./resources/alice.txt");
        var contents = Files.readString(path);
        List<String> words = List.of(contents.split("\\PL+"));
        var shortWords = new int[12];
        words.parallelStream().forEach(
            s -> {if(s.length()<12) shortWords[s.length()]++;}
        );
        System.out.println(Arrays.toString(shortWords));
    }

}

结果是多次数据不准确,经典的竞争情况。


http://www.kler.cn/a/503414.html

相关文章:

  • G1原理—7.G1的GC日志分析解读
  • Qi认证怎么办理?
  • [Flutter] 使用ScrollController配合EasyRefresh实现列表预加载:在还未滑动到底部时加载下一页数据
  • 统计有序矩阵中的负数
  • 【Docker】Docker部署多种容器
  • TensorFlow Quantum快速编程(基本篇)
  • Centos 宝塔安装
  • system generator 使用高版本的matlab
  • 【大数据】机器学习------神经网络模型
  • Go oom分析(一)——使用pprof线上分析
  • element ui前端小数计算精度丢失的问题如何解决?
  • 计算机视觉与深度学习 | 使用深度学习来训练基于视觉的车辆检测器(matlab源码-faster RCNN)
  • 算法-贪心算法简单介绍
  • 设计一个流程来生成测试模型安全性的问题以及验证模型是否安全
  • 【Uniapp-Vue3】onUnload页面卸载和onPageScroll页面监听滚动
  • PySpark用sort-merge join解决数据倾斜的完整案例
  • B3DM转换成FBX
  • Pgsql存储占用分析
  • AR 在高校实验室安全教育中的应用
  • 基于PHP的校园兼职系统设计和开发
  • 【Vue】Vue组件--上
  • [读书日志]从零开始学习Chisel 第十三篇:Scala的隐式参数与隐式转换(敏捷硬件开发语言Chisel与数字系统设计)
  • OLED显示字符
  • 八 rk3568 android11 AP6256 蓝牙调试
  • 网络安全之sql注入
  • 渐变头像合成网站PHP源码