Criei esse programa usando o netbeans no pacote t_03. Tive que executar no linux, ai copiei os dois arquivos pra uma pastar no linux e compilei, primeiro compilei o MinhaThread.java e foi tudo OK, porém, quando compilei o Main.java mostrou o seguinte erro:
código de compilação: javac Main.java
Main.java:18: error: cannot find symbol
_ MinhaThread f = new MinhaThread(8);_
_ ^_
_ symbol: class MinhaThread_
_ location: class Main_
Main.java:18: error: cannot find symbol
_ MinhaThread f = new MinhaThread(8);_
_ ^_
_ symbol: class MinhaThread_
_ location: class Main_
2 errors
Classe Main:
package t_03;
import java.util.ArrayList;
public class Main extends Thread{
public static void main(String[] args) throws InterruptedException{
MinhaThread f = new MinhaThread(8);
f.start();
synchronized(f){
try{
System.out.println("Aguardando o calculo terminar...");
f.wait();
}catch(Exception e){
System.out.println("Erro: "+e);
}
int i=0;
while(i<f.fib.size()){
System.out.println(i+": "+f.fib.get(i));
i++;
}
}
}
}
classe MinhaThread:
package t_03;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MinhaThread extends Thread{
int a=0;
int b=1;
int c=1;
int n;
public ArrayList<Integer> fib = new ArrayList<Integer>();
public MinhaThread(int n){
this.n=n;
}
public void run(){
synchronized(this){
try {
fibonacci(n);
} catch (InterruptedException ex) {
System.out.println("Erro: "+ex);
}
notify();
}
}
public void fibonacci(int n) throws InterruptedException{
int i=0;
while(i<=n){
fib.add(a);
fib.add(b);
if(fib.size()==n)
break;
Thread.sleep(500);
a=c;
b=a+b;
c=a+b;
i++;
}
}
}
