ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/loops/FibTask.java
(Generate patch)

Comparing jsr166/src/test/loops/FibTask.java (file contents):
Revision 1.1 by dl, Sun Sep 19 12:55:37 2010 UTC vs.
Revision 1.6 by jsr166, Sat Feb 16 21:37:44 2013 UTC

# Line 1 | Line 1
1 + /*
2 + * Written by Doug Lea with assistance from members of JCP JSR-166
3 + * Expert Group and released to the public domain, as explained at
4 + * http://creativecommons.org/publicdomain/zero/1.0/
5 + */
6 +
7   import java.util.concurrent.*;
8  
9   /**
10   * Recursive task-based version of Fibonacci. Computes:
11   * <pre>
12   * Computes fibonacci(n) = fibonacci(n-1) + fibonacci(n-2);  for n> 1
13 < *          fibonacci(0) = 0;
14 < *          fibonacci(1) = 1.      
13 > *          fibonacci(0) = 0;
14 > *          fibonacci(1) = 1.
15   * </pre>
16 < **/
11 <
16 > */
17   public final class FibTask extends RecursiveTask<Integer> {
18  
19      // Performance-tuning constant:
20      static int sequentialThreshold;
21  
22      static long lastStealCount;
23 <  
23 >
24      public static void main(String[] args) throws Exception {
25          int procs = 0;
26          int num = 45;
# Line 25 | Line 30 | public final class FibTask extends Recur
30                  procs = Integer.parseInt(args[0]);
31              if (args.length > 1)
32                  num = Integer.parseInt(args[1]);
33 <            if (args.length > 2)
33 >            if (args.length > 2)
34                  sequentialThreshold = Integer.parseInt(args[2]);
35          }
36          catch (Exception e) {
# Line 34 | Line 39 | public final class FibTask extends Recur
39          }
40  
41          for (int reps = 0; reps < 2; ++reps) {
42 <            ForkJoinPool g = procs == 0? new ForkJoinPool() :
42 >            ForkJoinPool g = (procs == 0) ? new ForkJoinPool() :
43                  new ForkJoinPool(procs);
44              lastStealCount = g.getStealCount();
45              for (int i = 0; i < 20; ++i) {
# Line 58 | Line 63 | public final class FibTask extends Recur
63          double secs = ((double)time) / NPS;
64          System.out.print("FibTask " + num + " = " + result);
65          System.out.printf("\tTime: %7.3f", secs);
66 <      
66 >
67          long sc = g.getStealCount();
68          long ns = sc - lastStealCount;
69          lastStealCount = sc;
# Line 89 | Line 94 | public final class FibTask extends Recur
94              FibTask f1 = new FibTask(n - 1);
95              f1.fork();
96              FibTask f2 = new FibTask(n - 2);
97 <            return f2.compute() + f1.join();
97 >            return f2.compute() + f1.join();
98          }
99      }
100  
# Line 103 | Line 108 | public final class FibTask extends Recur
108          return r;
109      }
110   }
106

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines