What I funny rabbit it is !?!
Why do you need to fork a process for every recursive step ?

> -----Original Message-----
> From: Patrick W. O'Neill [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, January 26, 1999 19:42
> To: Michael Sinz
> Cc: [EMAIL PROTECTED]
> Subject: Problem
> 
> 
> I apologize if this is the incorrect place to send this, I tried
> submitting a bug report but I don't know if it got through, and it is
> important that I resolve this ASAP.
> 
> I have a problem with JDK1.1.7-v1a running green threads.  I am running
> basic fibonacci code, using the recursive algorithm and implemented with
> threads.  This code runs without incident on the Solaris JDK.  However,
> when I try to run it using the Blackdown port, it works fine up to fib 5,
> but when I run fib 6, I get a seg fault.  I am running this on a Debian
> 2.0 system with glibc.  I have a similar problem with n-queens code, it
> runs fine on Solaris, but on Linux problems arise above an 8x8 board.
> 
> I you had any ideas as to why this happens I would greatly appreciate
> them.  Thanks.
> 
> 
> - Pat
> 
> 
> --------- Code -------------
> 
> import java.util.*;
> 
> public class java_fib extends Thread
> {
>   private int fib;
> 
>   java_fib(int number) { 
>     fib = number; 
>   }
> 
>   public void run() {
>     if( (fib==0) || (fib == 1)) {
>       fib = fib;
>     }
>     
>     else {
>       java_fib java_fib_thread_1 = new java_fib(fib - 1);
>       java_fib java_fib_thread_2 = new java_fib(fib - 2);
>       
>       java_fib_thread_1.start();
>       java_fib_thread_2.start();
>       
>       try {
>       java_fib_thread_1.join();
>       java_fib_thread_2.join();
>       fib = java_fib_thread_1.get_fib() +
>             java_fib_thread_2.get_fib();
>       }
>       catch(InterruptedException e){
>       e.printStackTrace();
>       }
>     }
>   }
> 
>   private int get_fib() {
>     return fib;
>   }
> 
> 
>   public static void main(String arg[]) {
>     java_fib fib;
>     int number;
>     number = new Integer(arg[0]).intValue();
>     fib = new java_fib(number);
>     Date now;
>     Date then = new Date();
>     fib.start();
> 
>     try {
>       fib.join();
>       now = new Date();
>       System.out.println("The total execution time is "  +
>             ((now.getTime() - then.getTime())) + "ms.");
>       System.out.println("The fibonacci for " + number + " is: " +
>                        fib.get_fib());
>     }
>     catch(InterruptedException e) {
>       e.printStackTrace();
>     }
>   }
> }
> 

Reply via email to