您的位置:首页 > 编程语言 > Java开发

java多线程实现方式--Callable接口

2017-09-29 21:44 399 查看
java实现多线程的方式有:继承Thread类;实现Runnable接口;实现Callable接口;
实现Callable接口,需要FutureTask类的支持,用于接收运算的结果,FutureTask类实现了Future接口和Runnable接口;
Callable的任务执行后可以有返回值,并且可以抛出异常;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class  TestDemo {
public static void main(String[] args) {

ThreadDemo td = new ThreadDemo();

FutureTask<Integer> result = new FutureTask<Integer>(td);
new Thread(result).start();

try{
//FutureTask 可用于 闭锁 类似于CountDownLatch的作用,在所有的线程没有执行完成之后这里是不会执行的
Integer sum = result.get();
System.out.println(sum);
} catch(Exception e) {
e.printStackTrace();
}

}
}

class ThreadDemo implements Callable<Integer> {

@Override
public Integer call() throws Exception {
int sum = 0;

for (int i = 0; i <= 100000; i ++) {
sum += i;
}

return sum;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 多线程 Callable