java8新特性-並行Stream線程安全問題


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

        List<Integer> list1 = new ArrayList<>();
        list.stream().forEach(x -> list1.add(x));
        System.out.println(list1.size());

//        List<Integer> list2 = new ArrayList<>();
//        list.parallelStream().forEach(x -> list2.add(x));
//        System.out.println(list2.size());

        List<Integer> list3 = list.parallelStream().collect(Collectors.toList());
        System.out.println(list3.size());
    }
}  

並行Stream因為考慮效率問題,所以沒有在意線程安全

我們可以使用線程安全的數據流處理使數據同步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM