做暖视频网站免费,asp.net做网站Dreamver,郑州微科网站建设,wordpress 输出标签一、parallelStream 并行流
1.1 串行 和 并行的区别 执行结果
二、问题
2.1 paralleStream 并行是否一定比 Stream 串行快?
2.2 是否可以都用并行#xff1f; 报错
三、实战 执行结果
四、总结 一、parallelStream 并行流 多线程并发处理#xff…
一、parallelStream 并行流
1.1 串行 和 并行的区别 执行结果
二、问题
2.1 paralleStream 并行是否一定比 Stream 串行快?
2.2 是否可以都用并行 报错
三、实战 执行结果
四、总结 一、parallelStream 并行流 多线程并发处理速度快 fork/join 框架提供了并发执行能力 底层原理线程池(ForkjoinPool) 维护一个线程队列将父任务拆分成子任务
1.1 串行 和 并行的区别 public static void main(String[] args) {ListInteger list Arrays.asList(1,2,3,4,5,6,7,8,9);System.out.println( 【串行 stream()】单线程);list.stream().forEach(System.out::println);System.out.println( 【并行 parallelStream()】多线程);list.parallelStream().forEach(System.out::println);} 执行结果 二、问题
2.1 paralleStream 并行是否一定比 Stream 串行快? 错误数据量少的情况可能串行更快ForkJoin会耗性能。 多数情况下并行比串行快
2.2 是否可以都用并行 不行部分情况会有线程安全问题parallelStream里面使用的外部变量比如集合一定要使用线程安全集合不然就会引发多线程安全问题 for (int i 0; i 10; i) {List list1 new ArrayList();IntStream.range(0,100).parallel().forEach(list1::add);System.out.println(list1.size());} 报错 三、实战
向list插入100个随机[0,100]的int重复10次 for (int i 0; i 10; i) {List list1 new CopyOnWriteArrayList();IntStream.range(0,100).parallel().forEach(list1::add);System.out.println(list1.size());} 执行结果 四、总结
一般 list.size() 几十个使用 Stream 几百个以上paralleStream