Java-List线程不安全问题

List线程不安全

实例

public class DemoTest {
    volatile List<Integer> volatileList;

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10000; i++) {
            list.add(i);
        }
        System.out.println(list.size());

        List<Integer> streamList = new ArrayList<>();
        list.parallelStream().forEach(streamList::add);
        System.out.println(streamList.size());

        List<Integer> streamVolatileList = new ArrayList<>();
        list.parallelStream().forEach(streamVolatileList::add);
        System.out.println(streamVolatileList.size());

        List<Integer> copyOnWriteList = new CopyOnWriteArrayList<>();
        list.parallelStream().forEach(copyOnWriteList::add);
        System.out.println(copyOnWriteList.size());

    }

}

结果

10000
4632
4371
10000
posted @ 2021-01-10 17:18  宋不争  阅读(327)  评论(0编辑  收藏  举报