Java 在并发系统中读取ArrayList

Java 在并发系统中读取ArrayList,java,list,concurrency,arraylist,Java,List,Concurrency,Arraylist,我有一个简单的ArrayList,我正在通过Java并发从多个线程ArrayList输入这个。每个线程将只读取此数组列表的同一实例。在读取操作过程中是否有可能出错?如果列表已完全填充并且所有线程始终以只读方式访问,则不会出现问题。如果存在写入操作,则需要同步对列表的所有访问,或使用并发列表(如CopyOnWriteArrayList).如果不再写入,请使用集合使其不可变。不可修改列表,然后忘记读取问题。如果arraylist没有更改,我想不出任何原因会出现问题,因为所有线程都在访问列表并读取。因

我有一个简单的
ArrayList
,我正在通过Java并发从多个
线程
ArrayList
输入这个
。每个
线程
将只读取此
数组列表的同一实例
。在读取操作过程中是否有可能出错?

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

如果不再写入,请使用
集合使其不可变。不可修改列表
,然后忘记读取问题。

如果arraylist没有更改,我想不出任何原因会出现问题,因为所有线程都在访问列表并读取。因此,您有多个线程正在写入同时加入名单?他们也在阅读列表,或者您的读者都在不同的线程中?@Perception在启动并发之前,列表已完全填充,因此线程仅在阅读。感谢您的澄清。在这种情况下,从多个线程读取列表时不应出现任何错误。