java - 使用多线程访问列表

标签 java multithreading

compute() 函数线程安全吗?多个线程会在列表上正确循环吗?

class Foo {

    private List<Integer> list;

    public Foo(List<Integer> list) {
        this.list = list;
    }

    public void compute() {
        for (Integer i: list) {
            // do some thing with it 
            // NO LIST modifications 
        }
    }
}

最佳答案

考虑到数据不会发生变化(正如您在评论中提到的),不会有任何脏/幻读。

关于java - 使用多线程访问列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29961988/

相关文章:

java - 当我使用尚未编写的父类(super class)的方法时,Java 会发生什么情况?

java - Spring MVC - 找不到页面

c# - DispatcherTimer 与 Thread.Sleep 的效率对比

java - 尝试写入/读取 firebase 实时数据库但没有结果 - java 服务器桌面

java - hibernate 中的 BLOB

python - 如何等到只有第一个线程在 Python 中完成

C# Lock 语法 - 2 个问题

c# - 如何修复 Task.Run 从 UI 线程抛出 STA 错误

java - 考虑性能的日志框架

java - 如何在 Avro 中追踪 "<init>()V"故障的根源?