-, . , . , , , , . impl .
volatile ArrayList<String> list = null;
public void doSomeProcessing() {
...
, :
static final String END_MARK = "some string that can never be a valid result";
final ConcurrentLinkedQueue<String> queue = new ...
public void doSomeProcessing()
if(!queue.contains(END_MARK))
synchronized(this)
if(!queue.contains(END_MARK))
result = ...
queue.addAll(result);
queue.add( END_MARK );
for(String s : queue)
, , - . - , List, " List impl, ", .