1辜贵、使用并行流過濾數(shù)據(jù)
案例:統(tǒng)計1-1000000內所有的質數(shù)數(shù)量菱蔬。
2膝但、從集合中得到并行流
在函數(shù)式編程中,我們可以從集合中得到一個流或并行流策泣。例如從學生集合中統(tǒng)計平均分:
List<Student> list =new ArrayList<>();
double avg = list.stream().mapToInt(s->s.score).average().getAsDouble();
stream()方法可以獲得一個流衙傀,若想并行執(zhí)行,可以使用parallelStream()方法:
double avg = list.parallelStream().mapToInt(s->s.score).average().getAsDouble();
3萨咕、并行排序
除了并行流之外统抬,普通數(shù)組也可以并行化。如數(shù)組排序可以使用Arrays.parallelSort(arr)并行排序危队。
int[] arr =new int[]{12,52,4,56,6,7,3};
Arrays.parallelSort(arr);
對數(shù)組中數(shù)據(jù)賦值方法:
第一個參數(shù)是給定的數(shù)組聪建,第二個參數(shù)是一個函數(shù)式接口。使用方式:
Arrays.setAll(arr,(i)->10); //串行執(zhí)行茫陆,給arr數(shù)組增加元素10
Arrays.parallelSetAll(arr,(i)->10);?//并行執(zhí)行金麸,給arr數(shù)組增加元素10
--參考文獻《實戰(zhàn)Java高并發(fā)程序設計》