| Forums: |
java
Java
|
| Author |
Using {RecursiveTask} in Java 1.7
|
Kevin Simonson
Ranch Hand
Joined: Oct 22, 2011
Posts: 52
|
|
I'm currently trying to learn how to use Fork and Join with Java 1.7. I started by taking a look at the web page at "http://www.oracle.com/technetwork/articles/java/fork-join-422606.html", and got as far as its mention of class {RecursiveTask}. At that point I thought I'd look {RecursiveTask} up at "http://docs/oracle.com/javase/7/docs/api", so I did, and noticed it gave an example of how to use {RecursiveTask} to calculate a Fibonacci number. I used its example, and just added a few more lines of code to come up with:
This works just fine when I execute "java Fibonacci 0" or "java Fibonacci 1", but when I try "java Fibonacci 2" I get the error message:
Exception in thread "main" java.lang.ClassCastException: java.lang.Thread cannot
be cast to java.util.concurrent.ForkJoinWorkerThread
at java.util.concurrent.ForkJoinTask.fork(ForkJoinTask.java:622)
at Fibonacci.compute(Fibonacci.java:21)
at Fibonacci.main(Fibonacci.java:31)
Can anybody tell me what I'm doing wrong?
Kevin S
|
 |
Steve Luke
Bartender
Joined: Jan 28, 2003
Posts: 3091
|
|
|
You are running the task from the main thread, you need to run it from a ForkJoinPool
|
Steve
|
 |
Kevin Simonson
Ranch Hand
Joined: Oct 22, 2011
Posts: 52
|
|
Steve Luke wrote:You are running the task from the main thread, you need to run it from a ForkJoinPool
Thanks, Steve; that fixed it for me.
|
 |
 |
|
|
subject: Using {RecursiveTask} in Java 1.7
|
|
|