java - 什么静态分析工具可以检测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 不是线程安全的。
解决方案
推荐阅读
- laravel - Laravel 使用 Redirect::to() 重定向到其他文件存储
- python-3.x - 如何为文本 url 生成可点击的链接
- php - 将ajax中的元素值和数组传递给PHP页面
- python - 导入库的正确方法是什么?
- c - 如何使用 alsa 库 API 与耳机和扬声器一起使用?
- ios - swift/alamofire/api token/ 缺少必需参数:grant_type
- java - 我该如何处理/tmp/jar_cache#######.tmp?
- javascript - 如何修复“未捕获的错误:语法错误,无法识别的表达式:。”
- android - 几秒钟后 WebRTC 远程视频冻结
- google-maps-api-3 - 如何从外部站点为 Google Maps API 设置配额?