stream
parallelStream 并行流
并行一定比串行快吗?
不一定,在数据量不大的时候,并行可能比串行要慢,因为并行会消耗性能
并行流存在线程不安全的问题,如果有集合add操作,会有数据丢失的问题。
由上图可以看到,list的长度在变化,在这个过程中有丢失数据,为了避免以上问题,我们的集合要定义为线程安全的。以下为线程安全集合。
List list = new CopyOnWriteArrayList();
List list = Collections.synchronizedList(new ArrayList<>());
reduce
joining
partitioningBy
groupingBy
summarizing
这里只写了summarizingInt的方法,summarizingLong,summarizingDouble一样的道理,就不过多说明了。