首页 > 解决方案 > 什么静态分析工具可以检测java中不安全的并发写入

问题描述

ArrayList<Integer> objects = new ArrayList<>();
IntStream.range(1, 20)
         .parallel()
         .forEach(objects::add);
Collections.sort(objects);
System.out.println(objects);

输出

[0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

缺少 7 和 8 因为 ArrayList 不是线程安全的。

标签: javastatic-analysispmdspotbugs

解决方案


推荐阅读