在Concurrent系统中读取ArrayList

时间:2012-11-09 14:20:38

标签: java list concurrency arraylist

我有一个简单的ArrayList,我通过Java并发从多个ArrayList提供此Thread。每个Thread只会读取此ArrayList的相同实例。在阅读操作期间是否有任何错误的机会?

2 个答案:

答案 0 :(得分:6)

如果列表已完全填充并且始终以所有线程的只读方式访问,则不会出现问题。如果存在写操作,则需要同步对列表的所有访问,或使用并发列表(如CopyOnWriteArrayList)。

答案 1 :(得分:6)

如果没有更多的写入使用Collections.unmodifiableList使其不可变,然后忘记读取问题。