import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) throws InterruptedException {
runTest();
}
private static void runTest() throws InterruptedException {
Collection<String> syncList = Collections
.synchronizedList(new ArrayList<String>(1));
List<String> list = Arrays.asList("A", "B", "C", "D");
List<Thread> threads = new ArrayList<Thread>();
for (final String s : list) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
syncList.add(s);
}
});
threads.add(thread);
thread.start();
}
for (Thread thread : threads) {
thread.join();
}
System.out.println(syncList);
}
}