java 多线程之Future与FutureTask
Future 一个接口代表一个思想如果调用的算法返回的数据并且后续计算与这些数据没关系的话大可不必浪费时间等待其完成。FutureTask 是 JDK 提供的一个实现类它接收一个实现 Callable 接口的业务对象通常配合线程池一起使用。掌握思想就能够在合适的场合去正确的应用其实并不难。下面给出简单的示例一看即懂package demo01; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; public class FutureTest { public static void main(String[] args) throws Exception { FutureTaskString futureTasknew FutureTask(new ExecuteSomething(ziwu)); ExecutorService serviceExecutors.newFixedThreadPool(1); service.submit(futureTask); TimeUnit.MINUTES.sleep(2); System.out.println(futureTask.get()); } } class ExecuteSomething implements CallableString { protected String data; public ExecuteSomething(String data) { this.data data; } Override public String call() throws Exception { TimeUnit.MINUTES.sleep(1); return data; } }