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因为考虑效率问题,所以没有在意线程安全
我们可以使用线程安全的数据流处理使数据同步