1、使用并行流过滤数据
案例:统计1-1000000内所有的质数数量。
并行统计质数总数2、从集合中得到并行流
在函数式编程中,我们可以从集合中得到一个流或并行流。例如从学生集合中统计平均分:
List<Student> list =new ArrayList<>();
double avg = list.stream().mapToInt(s->s.score).average().getAsDouble();
stream()方法可以获得一个流,若想并行执行,可以使用parallelStream()方法:
double avg = list.parallelStream().mapToInt(s->s.score).average().getAsDouble();
3、并行排序
除了并行流之外,普通数组也可以并行化。如数组排序可以使用Arrays.parallelSort(arr)并行排序。
int[] arr =new int[]{12,52,4,56,6,7,3};
Arrays.parallelSort(arr);
对数组中数据赋值方法:
setAll()第一个参数是给定的数组,第二个参数是一个函数式接口。使用方式:
Arrays.setAll(arr,(i)->10); //串行执行,给arr数组增加元素10
Arrays.parallelSetAll(arr,(i)->10); //并行执行,给arr数组增加元素10
--参考文献《实战Java高并发程序设计》
网友评论