Java 8中的Stream的操作可以通过并行的操作执行,通过Stream.parallel
或者Collection.parallelStream
方法可以获取并行操作的流。
并行流需要满足以下2个要求:
恒等性:初始值必须为组合函数的恒等值,拿恒等值和其他值做reduce操作时,其他值保持不变。
组合律:改变组合操作的顺序不会影响最终的结果。
在书中有个蒙特卡洛模拟法的例子,为了学习,参考书中,写个一样的例子如下
Java 8之前的版本
1 | public class MonteCarloMethod { |
Java 8版本如下:
1 | public class MonteCarloMethodStream { |
在Java 8中,并行流替我们做了一些并发处理的逻辑,代码显得简洁很多。