我有一个简单的ArrayList
,我通过Java并发从多个ArrayList
提供此Thread
。每个Thread
只会读取此ArrayList
的相同实例。在阅读操作期间是否有任何错误的机会?
答案 0 :(得分:6)
如果列表已完全填充并且始终以所有线程的只读方式访问,则不会出现问题。如果存在写操作,则需要同步对列表的所有访问,或使用并发列表(如CopyOnWriteArrayList
)。
答案 1 :(得分:6)
如果没有更多的写入使用Collections.unmodifiableList
使其不可变,然后忘记读取问题。