publicclassCollectionTest{publicstaticvoidmain(String[] args){List<String> data =newArrayList<>();IntStream.range(0,30).forEach(
i ->newThread(()-> data.add(String.valueOf(i)),String.valueOf(i)).start());System.out.println(data);}}
publicclassCollectionTest{publicstaticvoidmain(String[] args){List<String> data =newVector<>();IntStream.range(0,30).forEach(
i ->newThread(()-> data.add(String.valueOf(i)),String.valueOf(i)).start());System.out.println(data);}}
使用Collections工具类的synchronizedList方法:
publicclassCollectionTest{publicstaticvoidmain(String[] args){List<String> data =Collections.synchronizedList(newArrayList<>());IntStream.range(0,30).forEach(
i ->newThread(()-> data.add(String.valueOf(i)),String.valueOf(i)).start());System.out.println(data);}}
使用CopyOnWriteArrayList:
publicclassCollectionTest{publicstaticvoidmain(String[] args){List<String> data =newCopyOnWriteArrayList<>();IntStream.range(0,30).forEach(
i ->newThread(()-> data.add(String.valueOf(i)),String.valueOf(i)).start());System.out.println(data);}}
publicclassCollectionTest{publicstaticvoidmain(String[] args){Map<String,String> data =newConcurrentHashMap<>();IntStream.range(0,30).forEach(
i ->newThread(()-> data.put(String.valueOf(i),String.valueOf(i)),String.valueOf(i)).start());System.out.println(data);}}