java中的futureTask
时间: 2023-05-23 18:01:09 浏览: 102
FutureTask是Java并发编程中的一个类,他可以用来异步执行一个任务,并在任务执行完成后获取它的结果。FutureTask实现了Future接口和Runnable接口,可以被用来包装一个Callable或Runnable对象。他提供了get()方法,用于获取任务执行结果,这个方法会等待任务执行完成再返回结果。同时FutureTask还提供了cancel()方法,可以取消任务的执行。
相关问题
java 中的 futuretask
FutureTask 是 Java 中的一个类,它实现了 Future 接口和 Runnable 接口,可以用来异步执行任务并获取任务执行结果。它可以在多线程环境下使用,可以通过 get() 方法获取任务执行结果,也可以通过 cancel() 方法取消任务的执行。
给出java使用FutureTask异步处理的代码示例
下面是一个Java使用FutureTask异步处理的示例代码:
```java
import java.util.concurrent.*;
public class FutureTaskExample {
public static void main(String[] args) throws Exception {
// 创建一个 FutureTask,使用 Callable 实现异步处理
FutureTask<String> futureTask = new FutureTask<>(new Callable<String>() {
@Override
public String call() throws Exception {
// 模拟异步处理
Thread.sleep(1000);
return "Hello, FutureTask!";
}
});
// 创建一个线程池,使用 execute 方法执行 FutureTask
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(futureTask);
// 在主线程中执行其他操作
System.out.println("Do something else while waiting for FutureTask...");
// 阻塞等待 FutureTask 的结果,并打印结果
String result = futureTask.get();
System.out.println(result);
// 关闭线程池
executor.shutdown();
}
}
```
在这个示例中,我们创建了一个 FutureTask 对象,使用 Callable 接口实现异步处理。然后,我们通过 ExecutorService 创建了一个线程池,并使用 execute 方法执行 FutureTask。在主线程中,我们可以执行其他操作,然后通过调用 FutureTask 的 get 方法来阻塞等待异步处理的结果。最后,我们关闭了线程池。
阅读全文