クラス RecursiveTask<V>
こういうコードブロックを見ると混乱してしまう自分は、並列分散処理にも関数型言語にも苦手意識を持つ。それにしてもこのコードブロック、『徹底攻略 Upgrade to Java SE7 Programmer 問題集[1Z0-805]対応』にそのまま転載されているんだけれど、これっていいのかな?(そう言いながら自分も転載しているわけだけど・・・。つまり、営利目的うんぬんに関して・・・。)
class Fibonacci extends RecursiveTask<Integer> { final int n; Fibonacci(int n) { this.n = n; } Integer compute() { if (n <= 1) return n; Fibonacci f1 = new Fibonacci(n - 1); f1.fork(); Fibonacci f2 = new Fibonacci(n - 2); return f2.compute() + f1.join(); } }