在下,新手,想请教一下下面代码为何会什么结果都出不来?
import java.util.concurrent.*;
public class Fibonacci implements Runnable{
private int n = 0;
private int[] fibo;
public Fibonacci(){}
public Fibonacci(int n){
this.n = n;
fibo = new int[n];
}
public String toString(){
String str = "";
for(int i = 0;i < n; i ++){
str += fibo[i] + " ";
}
return str;
}
public void run(){
fibo[0] = 0;
fibo[1] = 1;
n -= 2;
int i = 2;
while(n-- > 0){
fibo[i] = fibo[i - 1] + fibo [i - 2];
i ++;
}
System.out.println(toString());
Thread.yield();
}
public static void main(String[] arg){
ExecutorService exec = Executors.newCachedThreadPool();
for(int i = 0;i < 5;i ++)
exec.execute(new Fibonacci(20));
exec.shutdown();
}
}
此外在ExecutorService中看到<T> Future<T> 的返回类型声明,请问第一次<T>怎么解释?
多谢!!
java;线程;泛型
------解决方案--------------------
我说你结果咋没有呢,让我试了半天。。。
你在toString时用的 n, 已经在 run()里面被-- 成 -1了。
变成
for(int i = 0;i < -1; i ++){
str += fibo[i] + " ";
}
------解决方案--------------------
第一个<T>是表示泛型函数的声明,没有什么实际的意义。