package com.day8.test;
import java.util.concurrent.Callable;
/**
* User: Json
* Date: 2021/8/29
* 创建线程的 第三种方式 -- jDK5.0新增
* 1. 创建一个实现Callable的实现类
* 2. 实现call方法 将此线程需要执行的操作声明在call() 中
* 3. 创建Callable接口实现的对象
* 4. 将此Callable接口实现类的对象作为参数传递到FutureTask的构造器中 创建FutureTask对象
* 5. 将FutureTask 对象作为参数传递到Thread构造器中并调用start 方法
*
*
* 理解Callable 接口创建的多线程比实现Runnable接口创建的多线程强大?
* 1. call 有返回值
* 2. call 可以抛出异常
* 3. Callable 支持泛型的
*
*
*
**/
public class ThreadNew implements Callable {
@Override
public Object call() throws Exception {
// return null;
int sum=0;
for (int i=1;i<=100;i++){
if(i%2==0){
System.out.println(i);
sum+=i;
}
}
return sum;
}
}
//测试
package com.day8.test;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* User: Json
* Date: 2021/8/29
**/
public class Test {
public static void main(String[] args) {
System.out.println("加油了");
//JDK 5.0 新增线程的创建方式
ThreadNew threadNew = new ThreadNew();
FutureTask futureTask = new FutureTask(threadNew);
new Thread(futureTask).start();;
try {
Object sum = futureTask.get();
System.out.println("总和为:"+sum);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}java 线程的 创建与使用 方式三
原创
©著作权归作者所有:来自51CTO博客作者json____的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Java 多线程 经典练习题
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
















