在Concurrent系统中读取ArrayList

Tap*_*ose 5 java concurrency list arraylist

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

JB *_*zet 6

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


Aja*_*rge 6

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