1、定义 DefaultCallable类实现Callable接口
/** * 自定义线程类 继承Callable接口 - 接口内要用泛型声明返回值类型 * 获取线程运行方法的返回值 */ public class DefaultCallable implements Callable<String> { @Override public String call() throws Exception { return "我是call()的返回值"; } }
2、测试 - 通过FutureTask接收Callable对象 -> 并将其作为target传入Thread -> 执行线程的start方法 -> 通过FutureTask类的get方法获取线程的返回值
public class TestCallable { public static void main(String[] args) throws ExecutionException, InterruptedException { //创建Callable接口实现类 Callable<String> callable = new DefaultCallable(); //创建FutureTask类接收callable FutureTask<String> futureTask = new FutureTask<>(callable); //将futureTask当作 target 传入线程 new Thread(futureTask).start(); //执行线程 //获取线程的返回值 String result = futureTask.get(); //打印线程的返回值 System.out.println(result); } }
控制台结果
我是call()的返回值