擅长:python、mysql、java
<p><a href="http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/" rel="nofollow noreferrer">Java8 streams</a>与您的示例类似:</p>
<pre><code>Integer ageSum = persons
.parallelStream()
.reduce(0,
(sum, p) -> {
System.out.format("accumulator: sum=%s; person=%s\n", sum, p);
return sum += p.age;
},
(sum1, sum2) -> {
System.out.format("combiner: sum1=%s; sum2=%s\n", sum1, sum2);
return sum1 + sum2;
});
</code></pre>
<p>对于定制的runnables/callables,这个解决方案在我看来也和Python一样简单:</p>
^{pr2}$