Java tutorial
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); } }