title: Is it possible for ArrayList to fail in a single-writer-multi-reader system?
body: <p>I have a <code>List</code> that needs to called by multiple threads. There will be only a single writer, and this writer will add elements and do nothing else. Elements are never removed or modified. Many concurrent reader threads will call <code>list.size()</code> and <code>list.get(index)</code>. </p>
  
  <p>We must assume that on occasion the internal array will need to grow as elements are added.</p>
  
  <p>Can I get away with using a plain <code>ArrayList</code>, or do I need to implement some fancy concurrent structure to avoid exceptions?</p>