Java多线程求斐波那契数列的指定项
在runThread(int num)函数中执行线程,创建Callable线程,Callable线程需要执行求第num项斐波那契数列的值,最后在runThread函数中获取Callable线程执行的结果,并打印输出。
package step2;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import java.util.*;
public class Task {
public void runThread(int num){
//请在此添加实现代码
/********** Begin **********/
// 在这里开启线程 获取线程执行的结果
ThreadCallable tc=new ThreadCallable();
FutureTask<Object> ft=new FutureTask<>(tc);
Thread t1=new Thread(ft,"t1");
t1.start();
System.out.println("线程的返回值为:"+ft.get());
/********** End **********/
}
}
//请在此添加实现代码
/********** Begin **********/
/* 在这里实现Callable接口及方法 */
class ThreadCallable implements Callable<Integer>{
public Integer call() throws Exception{
int a=1;int b=1;int c=0;
int num;
public ThreadCallable(int num){
this.num=num;
}
if(num<=2){
c=1;
}
else{
for(int i=0;i<num;i++){
c=a+b;
a=b;
b=c;
}
}
System.out.println(c);
}
}
/********** End **********/
import java.util.Scanner;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import step2.ThreadCallable;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
ThreadCallable callable = new ThreadCallable();
if(!(callable instanceof Callable)){
System.out.println("未定义Callable线程,或者定义错误");
}
Task task = new Task();
task.runThread(num);
}
}
错误 0/5src/step2/Task.java:34: error: illegal start of expression
public ThreadCallable(int num){
^
src/step2/Task.java:34: error: '.class' expected
public ThreadCallable(int num){
^
src/step2/Task.java:34: error: ';' expected
public ThreadCallable(int num){
^
3 errors
好像一直是键盘输入的数据传入线程有错,还有task和threadcallable接口那里有问题
...全文
相关推荐
Java实现斐波那契数列的前n项和
Java实现斐波那契数列的前n项和.。。。。。。。。
Java递归实现斐波那契数列
主要为大家详细介绍了Java递归实现斐波那契数列,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java代码实现斐波那契数列输出第n个数
java代码实现斐波那契数列 类似1 1 2 3 5 8 输出第n个数 java开发工程师 笔试一般经常考到
Java求一个分数数列的前20项之和的实现代码
主要介绍了Java求一个分数数列的前20项之和的实现代码,需要的朋友可以参考下
java实现斐波那契数列的3种方法
主要介绍了java实现斐波那契数列的3种方法,有需要的朋友可以参考一下


Eclipse
