八阻塞等待异步结果FutureTask
Posted lay2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八阻塞等待异步结果FutureTask相关的知识,希望对你有一定的参考价值。
一、简介
默认的异步任务有些难以控制,有时候我们希望在当前线程获取异步任务的结果。FutureTask可以帮助我们实现
JDK文档:http://tool.oschina.net/uploads/apidocs/jdk-zh/java/util/concurrent/FutureTask.html
二、代码示例
以下代码,我们创建了FutureTask实例,然后将它丢给一个线程去执行。
再调用get方法阻塞等待异步结果,异步线程执行futureTask以后,返回结果。get方法获取结果以后,停止阻塞状态,打印结果。
import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; public class FutureTaskDemo { public static void main(String[] args) throws ExecutionException, InterruptedException { FutureTask<String> futureTask = new FutureTask<>(() -> { System.out.println("future task is called"); Thread.sleep(2000); return "futureTask is done"; }); new Thread(futureTask).start(); System.out.println(futureTask.get()); } }
以上是关于八阻塞等待异步结果FutureTask的主要内容,如果未能解决你的问题,请参考以下文章