package step2;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class Task {
public void runThread(int num) {
// 在这里开启线程 获取线程执行的结果
//请在此添加实现代码
/********** Begin **********/
Callable<Integer> callable = new ThreadCallable(num);
FutureTask<Integer> futureTask = new FutureTask<>(callable);
new Thread(futureTask).start();//开启线程
try {
Integer result = futureTask.get();
System.out.println("线程的返回值为:" + result);
} catch (Exception e) {
e.printStackTrace();
}
/********** End **********/
}
}
/********** Begin **********/
/* 在这里实现Callable接口及方法 */
class ThreadCallable implements Callable<Integer> {
private int num;
public ThreadCallable() {
}
public ThreadCallable(int num) {
this.num = num;
}
public Integer call() throws Exception {
int[] arr = new int[2];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < num; i++) {
int tmp = arr[1];
arr[1] = arr[0] + arr[1];
arr[0] = tmp;
}
return arr[1];
}
}
/********** End **********/
java 多线程(Callable,Future)
原创
©著作权归作者所有:来自51CTO博客作者李响Superb的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java多线程的解析
Java多线程的解析 并发 并行 锁 CAS
守护线程 线程组 多线程 锁 -
多线程之futureTask(future,callable)实例,jdbc数据多线程查询
最近遇到一个这样的功能要求。在查询数据时,由于查询的数据量比较大,一次查询(一条SQL语句中包含太多的条件)查询起来很慢,大约要10S左右才能查询出来,这样体验太不好了,需要进行优化。今天想了想,打算采用在后端把一条SQL进行拆分,拆分成为多条SQL语句,再抛给多个线程去分别查询,查询完毕后,再进行汇总的这个思路来实现。由于会用到多线程,JAVA中对于多线程感觉就两种。一种是常用的runnab
callable future futuretask jdbcTemplate拆分查询 jdbcTemplate多线程查询