package com.qf.demo01;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
public class Demo08 {
public static void main(String[] args) {
//步骤3,创建线程池对象(缓存线程池)
ExecutorService es = Executors.newCachedThreadPool();
//步骤4:创建Callable的子类对象
TestCallable callable = new TestCallable();
//步骤5:使用线程池对象执行步骤4中的callable对象
Future<Integer> future = es.submit(callable);
try {
//步骤6:获取callable对象中call方法的返回值
Integer integer = future.get();
int num = integer + 10;
System.out.println(num);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//步骤1创建一个类实现Callable接口,泛型为call方法的返回值类型
class TestCallable implements Callable<Integer>{
//步骤2:重写call方法
@Override
public Integer call() throws Exception {
//线程任务要执行的代码块
Thread.sleep(5000);
return 7;
}
}
CallAble接口的使用
最新推荐文章于 2024-02-21 15:38:35 发布
该博客介绍了如何在Java中利用ExecutorService创建线程池,执行Callable任务并获取Future结果。通过示例代码展示了从Future中获取call方法返回值的过程,涉及多线程和并发处理的基本概念。
摘要由CSDN通过智能技术生成