Java Callable接口 基于Java Callable接口实现线程代码实例
javase--> 人气:0想了解基于Java Callable接口实现线程代码实例的相关内容吗,javase-->在本文为您仔细讲解Java Callable接口的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java,Callable接口,线程,下面大家一起来学习吧。
实现Callable接口(jdk8新特性)
可以获得线程的返回值
*前两种方式没有返回值,因为run方法返回void
创建一个未来任务类对象 Futrue task = new Future(Callable<>);重写call()方法 可以使用匿名内部类方式
task.get()方法获取线程返回结果
get方法执行会导致当前方法阻塞 效率较低
代码如下
import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; public class Test_13 { public static void main(String[] args) { System.out.println(Thread.currentThread().getName() + "begin"); FutureTask task = new FutureTask(new Callable() { @Override public Object call() throws Exception { System.out.println(Thread.currentThread().getName() + "start"); Thread.sleep(1000 * 5); int a = 100; int b = 200; System.out.println(Thread.currentThread().getName() + "over"); return a + b; } }); Thread thread = new Thread(task); thread.start(); try { System.out.println(task.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "end"); } }
加载全部内容